#django #orm #join #many-to-many #django-orm
#django #orm #Присоединиться #многие ко многим #django-orm
Вопрос:
У меня есть две модели Django, которые связаны друг с другом через отношения «многие ко многим».
Мне нужно перечислить перекрестное произведение обеих таблиц.
Для простоты предположим, что две модели — это пицца и начинка.
Я бы хотел, чтобы запрос возвращал что-то вроде этого:
pizza_name topping
---------------------
all dressed cheese
all dressed mushrooms
all dressed onions
all dressed peperoni
all dressed pepper
reddit cheese
reddit peperoni
reddit bacon
reddit baconbits
Объем данных будет очень большим, и мне абсолютно необходимо использовать count и slices, поэтому я не могу просто повторять модель и обрабатывать данные по ходу работы.
Есть идеи, как мне поступить?
Комментарии:
1. Под перекрестным соединением вы подразумеваете, что хотите возвращать возвращаемые
p*t
строки, гдеp
количество пицц иt
количество начинок? Или вы хотите возвращать каждую пару (pizza
,topping
) вpizza_topping
промежуточной таблице? Опубликованный вами пример результатов предполагает последнее.2. что сказал Аласдэр. другими словами, опубликованный вами пример не является перекрестным продуктом.
Ответ №1:
В конце концов я решил это, просто выполнив итерацию по промежуточной таблице.