我有一个父子关系的类别列表:
class Categories(models.Model):
cat_name = models.Charfield()
cat_parent = models.ForeignKey('self')
Run Code Online (Sandbox Code Playgroud)
所以我想列出它们:
Category 1
Sub category 1
Sub category 2
Sub category 3
Category 2
Sub category 4
Sub category 5
Run Code Online (Sandbox Code Playgroud)
等等...
最好的方法是什么?
你可以这样做
categories ={}
map(lambda c: categories.setdefault(c.cat_parent, []).append(c),\
Categories.objects.filter(cat_parent__isnull=False)\
.select_related('cat_parent'))
Run Code Online (Sandbox Code Playgroud)
你会得到categories
像这样的字典
{
Category 1 : [Sub category 1, Sub category 2, Sub category 3],
Category 2 : [Sub category 4, Sub category 5]
}
Run Code Online (Sandbox Code Playgroud)
然后在你的模板中
{% for category, sub_categories in categories.items %}
{{ category.name }}
{% for sub_category in sub_categories %}
{{ sub_category }}
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1761 次 |
最近记录: |