如何在第二级 child 不存在时仅显示第一级 child 否则在 django MPTT 中显示第二级 child

How to show only first level child when second level child doen't exists otherwise show second level child in django MPTT

我从 django-mptt 树得到以下输出:

Group-2    
    Ministry E
        Division G
        Division Z
    Ministry F
        Division I
        Division J

Group-3    
    Ministry P
        Division X
        Division Y
    Ministry Q
    Ministry R
        Division U
        Division V

但是我想显示如下:

        Division G
        Division Z

        Division I
        Division J 

        Division X
        Division Y

    Ministry Q

        Division U
        Division V

也就是说level 1只在level 2不存在的时候显示,否则level 2只显示。 我尝试使用 Model.objects.filter(level=1) 但它只提供一个级别,而不是有选择地提供两个级别。我也试过 Model.objects.filter(level__gt=0) 它给出了两个级别都不遵守条件。

怎样才能同时获得两个关卡维持条件?

编辑:

{% block content %}


{% load mptt_tags %}
{% for instance in Genre.objects.all %}
    {% if instance.is_leaf_node %}
        {{ instance }}
    {% endif %}
{% endfor %}

{% endblock %}

观看次数:

def show_genres(request):
    instances = Genre.objects.filter(children__isnull=True)
    return render(request,
                  'genre/template.html', {'instances': instances})

网址:

url(r'^genres/$', show_genres, name="genre_list",)

型号:

 class Genre(MPTTModel):
name = models.CharField(max_length=50, unique=True)
parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True)

class MPTTMeta:

    order_insertion_by=['name']

只显示叶节点

解决方案 #1 - 在模板中:

{% for instance in Model.objects.all %}
    {% if instance.is_leaf_node %}
        {{ instance }}
    {% endif %}
{% endfor %}

解决方案 #2 - 可见:

instances = Model.objects.filter(children__isnull=True)
return render(request, 'template.html', {'instances': instances})