Для следующих моделей:
class Topping(models.Model):
name = models.CharField(max_length=100)
class Pizza(models.Model):
name = models.CharField(max_length=100)
toppings = models.ManyToManyField(Toppping)
Мои данные выглядят следующим образом:
Столы для пиццы и топпинга присоединились:
ID NAME TOPPINGS
------------------------------------
1 deluxe topping_1, topping_2
2 deluxe topping_3, topping_4
3 hawaiian topping_1
Я хочу получить идентификатор пиццы вместе с соответствующей начинкой для всей пиццы с именем deluxe
. Мой ожидаемый результат:
1 topping_1
1 topping_2
2 topping_3
2 topping_4
Соединительная таблица:
pizza_toppings
--------------
id
pizza_id
topping_id
Вот SQL-эквивалент того, чего я хочу достичь:
SELECT p.id, t.name
FROM pizza_toppings AS pt
INNER JOIN pizza AS p ON p.id = pt.pizza_id
INNER JOIN topping AS t ON t.id = pt.topping_id
WHERE p.name = 'deluxe'
Есть идеи, как выглядит соответствующий Django Queryset? Я также хочу отсортировать полученную начинку по имени, если вышеупомянутое не достаточно сложно.