Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » [django-mptt][bootstrap] Нарисовать дерево как таблицу [RSS Feed]

#1 Фев. 4, 2012 08:51:28

nuklea
От:
Зарегистрирован: 2009-12-05
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

[django-mptt][bootstrap] Нарисовать дерево как таблицу

Решил заюзать twitter bootstrap в проекте, потребовалось отрисовывать дерево примерное вот так:

<div class="row">
<div class="span4">
<h3><a href="#">{{ node.title }}</a></h3>
{% if not node.is_leaf_node %}
<ul class="children">{{ children }}</ul>
{% endif %}
</div>
<div class="span4">
<h3><a href="#">{{ node.title }}</a></h3>
{% if not node.is_leaf_node %}
<ul class="children">{{ children }}</ul>
{% endif %}
</div>
</div>

<div class="row">
<div class="span4">
<h3><a href="#">{{ node.title }}</a></h3>
{% if not node.is_leaf_node %}
<ul class="children">{{ children }}</ul>
{% endif %}
</div>
<div class="span4">
<h3><a href="#">{{ node.title }}</a></h3>
{% if not node.is_leaf_node %}
<ul class="children">{{ children }}</ul>
{% endif %}
</div>
</div>
Сходу не соображу, как это сделать. Есть идеи?



Офлайн

#2 Фев. 4, 2012 13:13:44

likin
От:
Зарегистрирован: 2010-03-15
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

[django-mptt][bootstrap] Нарисовать дерево как таблицу

Насколько, я понимаю это рекурсия…
Потому единственное решение которое я вижу, это создать свой тег.
Да тег не простой, а с генерацией шаблона одного уровня. Тогда у тебя пойдёт рекурсия типа шаблон - тег - шаблон - тег…..
Или просто реализуй рекурсивную функцию без участия шаблонизатора.



Офлайн

#3 Фев. 5, 2012 07:39:07

nuklea
От:
Зарегистрирован: 2009-12-05
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

[django-mptt][bootstrap] Нарисовать дерево как таблицу

Пока сделал так:

Вьюха

    root_node = get_object_or_404(Tree, classification=classification)
nodes = cache_tree_children(root_node.get_descendants())
chunks = map(None, *([iter(nodes)] * 3))
Шаблон:
    {% for chunk in chunks %}
<div class="row">
{% for node in chunk %}
{% if node %}
<div class="span4">
<h3><a href="#">{{ node.title }}</a></h3>
</div>
{% endif %}
{% endfor %}
</div>
{% endfor %}
Планирую сделать фильтр nodes|tree_chunk:“3”



Офлайн

  • Начало
  • » Django
  • » [django-mptt][bootstrap] Нарисовать дерево как таблицу[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version