Из документации Django
from django.db import models
class Topping(models.Model):
# ...
pass
class Pizza(models.Model):
# ...
toppings = models.ManyToManyField(Topping)
Как вывести все пиццы со входящими в них топпингами понятно:
pizzas = Pizza.objects.all()
И в шаблоне:
{% for pizza in pizzas %}
В пиццу {{ pizza.name }} входят топпинги:
{% for topping in pizzas.toppings.all %}
{{ topping.name }}
{% endfor %}
{% endfor %}
А если например нужно вывести список топпингов и для каждого топпинга указать в какой пицце он используется? Нельзя ведь сделать в шаблоне toppings.pizzas.all, потомучто связь m2m указана только в одной модели...
Вручную формировать во вьюхе список типа [{'pizza': pizza, 'toppings': [topping1, topping2,...]}, ...] ?
PS: Меня интересует не как сделать запрос к бд (найти пиццы через топпинги), а как потом вывести это в шаблоне чтобы в итоге получилось например так:
Томатный топпинг используется в пиццах: 1. Итальянская, 2. Мясная;
Кукурузный топпинг используется в пиццах: 1. Мясная, 2. Куриная