Django ORM join к одной и той же таблице дважды с помощью псевдонима

Мы используем модели Django. Мне нужно добавить еще одно условие, чтобы присоединиться к одной и той же таблице дважды с разными условиями. Пример запроса:

select shop_id
from shop_to_warehouse_mapping
inner join warehouse w1 on w1.id = shop.warehouse_id 
inner join warehouse w2 on w2.id = shop.warehouse_id
where w1.type='daily_life' and w2.type='produce'

У нас есть сопоставления магазинов со складами, то есть многие ко многим. Я хотел бы получить идентификаторы магазинов, которые работают со складом 1 и 2. В моделях Django у нас есть внешний ключ warehouse в модели отображения shop to warehouse. Как я могу использовать метод filter для представления этого? Если бы я мог как-то использовать псевдоним в фильтре, это было бы замечательно.

Любая помощь будет оценена по достоинству! (Я бы с удовольствием написал запрос напрямую, но этот запрос сложный, в нем уже есть много других условий).

Спасибо!

Вернуться на верх