如何从Django中不相关的模型获取查询集

问题描述 投票:0回答:1

我正在开发一个有关汽车备件的网站。主要模型是Part,它有不同的父模型,例如Category和Brand。

我想从我的数据库自动生成菜单。如果我有一级菜单“类别”,那就非常简单了。我只需选择所有类别,其中至少有一个部分,然后将它们传递给上下文中的模板:

category_list = Category.objects.annotate(num_parts=Count('parts')).filter(num_parts__gt=0)
context['category_list'] = category_list
return context

但现在我希望我的菜单是两级的,由类别和品牌组成:

  • 轮子
    • 丰田
    • 福特
    • 雷诺
  • 散热器
    • 福特
    • 梅赛德斯 或者当然,我不想获得空的菜单选项,其中没有任何部分。请给我提示,我该怎么做!
django menu django-queryset
1个回答
0
投票

也许您需要这样的东西:

    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
© www.soinside.com 2019 - 2024. All rights reserved.