Джанго - Получить объекты из квадрата отношения многих ко многим - PullRequest
0 голосов
/ 07 октября 2019

Я начинаю проект Django с такими моделями, как:

Поставщик <- многие ко многим -> Продукт <- многие ко многим -> Категория

Есть ли эффективный способ получитьвсе категории, связанные с продуктами поставщика?

Текущий неэффективный способ:

  1. Получить все продукты определенного поставщика
  2. Для всех продуктов получить их конкретныекатегории
  3. Удалите дубликаты списка категорий

Если возможно, я бы хотел избежать создания поддельного отношения «многие ко многим» между категорией и поставщиком.

Спасибозаранее

1 Ответ

2 голосов
/ 07 октября 2019

Хитрость всегда заключается в том, чтобы начать с модели, которую вы хотите получить, т.е. категории. Итак, при условии, что ваши отношения называются product и vendor, и у вас есть объект Vendor с именем my_vendor:

Category.objects.filter(product__vendor=my_vendor)
...