Как я могу отобразить название MenuCard, MenuCardCategories и связанную MenuCardFood в документе .html с помощью jinja2?
Я хочу создать карту меню, с категориями и блюдами. Должна быть возможность создания нескольких менюКарт.
#Моя попытка
введите описание изображения здесь
Как отобразить название MenuCard, MenuCardCategories и связанную с ней MenuCardFood в документе .html с помощью jinja2? Результат должен выглядеть следующим образом...
#первое менюКарта
menuCardName
menuCardCategoryName
foodName
foodName
foodName
menuCardCategoryName
foodName
foodName
foodName
#второе менюКарта
menuCardName
menuCardCategoryName
foodName
foodName
Вам необходимо запросить 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>],
]