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’)))