我正在开发一个有关汽车备件的网站。主要模型是Part,它有不同的父模型,例如Category和Brand。
我想从我的数据库自动生成菜单。如果我有一级菜单“类别”,那就非常简单了。我只需选择所有类别,其中至少有一个部分,然后将它们传递给上下文中的模板:
category_list = Category.objects.annotate(num_parts=Count('parts')).filter(num_parts__gt=0)
context['category_list'] = category_list
return context
但现在我希望我的菜单是两级的,由类别和品牌组成:
也许您需要这样的东西:
category_list = Category.objects.annotate(num_parts=Count('parts')).filter(num_parts__gt=0)
categories = []
for category in category_list:
categories += [{
"category": category,
"brands": <quey_the_brands_for_the_given_category>
}]
context['category_list'] = categories
return context