Prefetch не симулирует

Мой набор запросов таков

product = Prosucts.objects.all().prefetch_related(Prefetch(‘prod_sale’, Sales.objects.filter(type__in=(1,2)).annotate(quantity_sold=Sum(‘quantuty’)), to_attr=‘prod_sold’))

Итак, если у меня есть продукт сок=3, яблоко =6, яблоко=4

Мой кверисет дает мне сок = 3, яблоко = 6 , 4

Я не могу заставить Apple стать 10

Не смотрел ваш models.py, но предполагаю, что ваше связанное имя для модели объекта Product и объекта Sales - 'prod_sale', которое я использовал для связи обеих моделей с помощью prefetch_related, а затем аннотировал сумму. Это просто для того, чтобы дать вам представление о том, как это сделать. Вот ссылка, где можно прочитать больше об агрегировании и аннотировании сумм: https://docs.djangoproject.com/en/4.0/topics/db/aggregation/

product = Products.objects.all().prefetch_related('prod_sale’).annotate(quantity_sold=Sum(‘quantity’)))
Вернуться на верх