Агрегирование значений с помощью поля foreignkey

У меня есть свойство модели, где я суммирую поле внешнего ключа product_price и поле модели spend:

@property
def price_total(self):

    queryset = self.product.all().aggregate(
        total_price=models.Sum('price'))
    return queryset["total_price"] or 0 + self.spend

Это работает хорошо, но мне нужно изменить запрос фильтра:

@property
def total_purchases(self):
    qs = super(PurchasesFilter, self).qs

    return qs.filter(regular='False', paid='True').aggregate(total_price=Sum(F('spend') + F('product__price')))['total_price']

Этот запрос добавляет расходы только если добавлена цена продукта и дублирует значение расходов для каждого добавленного продукта. Мне нужен запрос, который всегда суммирует все расходы и добавляет цены продуктов, только если они добавлены к расходам. И значение расхода не дублировалось бы с каждым добавленным товаром.

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