我从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
这意味着级别1仅显示级别2不存在,否则级别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})
URLS:
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']
答案 0 :(得分:0)
仅显示叶节点
解决方案#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})