我有一个类似的模型类别:
class Category(TimeStampedModel):
category_parent = models.ForeignKey('self', blank=True, null=True)
name = models.CharField(max_length = 200)
slug = models.SlugField(unique=True)
def __str__(self):
return self.name
我想要的是首先显示所有没有父母的类别,然后在嵌套列表中显示他们各自的孩子:例如:
Flowers
Lilac
Rose
Trees
Maple
所以我试过的是:
def get_categories(request):
categories = Category.objects.filter(category_parent=None)
return {'categories' : categories}
但是当我试图展示每个类别的孩子时,没有一个出现,按照我的例子,我只得到花和树..
<ul class="nav-list">
{% for category in categories %}
<li class="nav-item"><a class="nav-link" href="#">{{ category.name }}</a>
{% if category.categories %}
<ul class="nav-submenu">
{% for subcategory in category.categories %}
<li class="nav-submenu-item"><a href="#">{{ subcategory.name }}</a></li>
{% endfor %}
</ul>
{% endif %}
</li>
{% endfor %}
</ul>
我怎样才能让孩子们接受?
答案 0 :(得分:1)
您没有指定相关名称&#34;类别&#34;到category_parent字段,这样您就无法通过category.categories访问它。您可以尝试使用此表达式
{% for subcategory in category.category_set.all %}
<!-- subcategory staff -->
{% endfor %}
在你的模板中。