Как показать определенное количество уровней в django-mptt?
В моем проекте Django я использую приложение django-mptt для создания иерархического дерева. Прямо сейчас следующий код работает хорошо, но я хочу показать только первые 4 уровня дерева. Как сделать это правильно? Я сбит с толку.
views.py:
context['caregories'] = Category.objects.get(id=5).get_descendants()
HTML:
{% load mptt_tags %}
<ul>
{% recursetree caregories %}
<li>
{{ node.name }}
{% if not node.is_leaf_node %}
<ul class="children">
{{ children }}
</ul>
{% endif %}
</li>
{% endrecursetree %}
</ul>
1 ответ
Решение
Вы можете отфильтровать потомков по их уровню
obj = Category.objects.get(id=5)
context['caregories'] = obj.get_descendants().filter(level__lte=obj.level + max_depth)
где max_depth
нужная вам глубина