Как показать определенное количество уровней в django-mptt? - PullRequest
0 голосов
/ 30 мая 2018

В моем проекте 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 Ответ

0 голосов
/ 30 мая 2018

Вы можете отфильтровать потомков по их уровню

obj = Category.objects.get(id=5)
context['caregories'] = obj.get_descendants().filter(level__lte=obj.level + max_depth)

, где max_depth - требуемая глубина

...