我如何使用 jinja2 在 .html 文档中显示 MenuCard、MenuCardCategories 和关联的 MenuCardFood 的名称?

How can i display the name of the MenuCard, the MenuCardCategories and the associated MenuCardFood in the .html document with jinja2?

我想制作一个包含类别和食物的菜单卡。 应该可以创建多个菜单卡。

#我的尝试

enter image description here

如何使用 jinja2 在 .html 文档中显示 MenuCard、MenuCardCategories 和关联的 MenuCardFood 的名称? 结果应该是这样的...

#first menuCard

menuCardName
menuCardCategoryName
食物名称
食物名称
食物名称

menuCardCategoryName
食物名称
食物名称
食物名称

#second menuCard

menuCardName
menuCardCategoryName
食物名称
食物名称

您需要查询 MenuCard 个对象并按类别对相关的 MenuCardFood 个项目进行分组。可能的解决方案是:

objects_list = []

for menu in MenuCard.objects.all():
    menu_context = {'menu': menu, 'categories': []}
    categories = menu.menuCard_menuCardFood.values('menuCardCategories').distinct()

    for category in categories:
        category_context = {'category': category}
        related_food_list = menu.menuCard_menuCardFood.filter(menuCardCategories=category)
        category_context.update({'food_list': related_food_list})
        menu_context['categories'].append(category_context)

    objects_list.append(menu_context)

以上代码应生成:

[
    {"menu": MenuCardObject1, "categories": ["category": MenuCardCategoryObject, "food_list": <QuerySet of MenuCardFood objects>],
    {"menu": MenuCardObject2, "categories": ["category": MenuCardCategoryObject, "food_list": <QuerySet of MenuCardFood objects>],
    {"menu": MenuCardObject3, "categories": ["category": MenuCardCategoryObject, "food_list": <QuerySet of MenuCardFood objects>],
]