Django — создайте эквивалент запроса перекрестного соединения с Django ORM.

У меня есть две модели Django, которые связаны друг с другом отношениями «многие ко многим».

Мне нужно перечислить перекрестный продукт обеих таблиц.

Скажем для простоты, что это две модели: Pizza и Topping.

Я хотел бы, чтобы запрос возвращал что-то вроде этого:

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

Объем данных будет очень большим, и мне абсолютно необходимо использовать счетчик и срезы, поэтому я не могу просто повторять модель и обрабатывать данные по ходу дела.

Есть идеи, как мне поступить?


person Dan    schedule 25.10.2011    source источник
comment
Под перекрёстным соединением вы подразумеваете, что хотите вернуть возвращаемые p*t строки, где p — количество пицц, а t — количество начинок? Или вы хотите вернуть каждую пару (pizza, topping) в промежуточной таблице pizza_topping? Результаты примера, которые вы опубликовали, предполагают последнее.   -  person Alasdair    schedule 26.10.2011
comment
что сказал Аласдер. другими словами, пример, который вы разместили, не является перекрестным продуктом.   -  person akonsu    schedule 26.10.2011


Ответы (1)


В конце концов я решил это, просто перебирая промежуточную таблицу.

person Dan    schedule 26.10.2011