Суммарная стоимость всех предметов

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

transactions = Transaction.objects.filter(product__product_name_id = item.id)

В этом наборе запросов содержится ряд полей.

product
amount
price
transaction_date

Мне нужно вычислить итоговые значения в полях суммы.

Текущий набор запросов возвращает 2 amounts из 2 `транзакций`

Будет ли разумным просмотреть каждую транзакцию и добавить ее в список или есть лучший способ?

list = []
for item in transactions:
   amount = item.amount
   list.append(amount)

Спасибо

Вы можете позволить БД обрабатывать это, используя aggregation:

from django.db.models import Sum

total = transactions.aggregate(s=Sum("amount"))["s"]

для этого можно использовать aggregate:

from django.db.models import Sum

transactions.aggregate(Sum('amount'))
# returns {'amount__sum': 1000} for example
Вернуться на верх