Реализация SQL-запроса Django в ORM с использованием объединений и группировок

Этот запрос должен вернуть общую сумму (quantity - qty_fulfilled), сгруппированную по product_id.

Я застрял, пытаясь преобразовать этот sql-запрос postgres в запрос ORM. Этот sql запрос работает, но метод get_queryset() в моделях Admin не поддерживает RawQueryset, как указано здесь, так что это должно быть в форме Queryset.

select t1.id, t3.req_from_orders from inventory_inventory t1
left join
product_app_product t2 
on t1.product_id = t2.id
left join
(
    select product_id, sum(quantity) - sum(qty_fulfilled) as req_from_orders
    from order_app_cartitem oac
    group by oac.product_id 
) t3
on t1.product_id = t3.product_id

Модели:

* Inventory
  * product_id (OneToOneField)
  * id (UUID)
* Product
  * id (UUID)
* CartItem
  * id (UUID)
  * product_id (ForeignKey)
  * quantity (int)
  * qty_fulfilled (int)
* Inventory <-> Product <-* CartItem 

Пробовал использовать annotate(RawSQL="<query>", params=(param,)), но параметры не могут принимать динамические идентификаторы. Любая помощь будет высоко оценена.

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