Django: Лучшая практика для суммирования всех итоговых сумм на основе поля модели
Вот мой код
reports: queryset
for reports in reports:
data.append(DataModel(
model_id=report.num,
title=report.title,
total_price=report.total_amount,
))
Этот код будет создавать некоторые объекты DataModel и добавлять их в список.
Я хочу суммировать total_price
всех объектов с одинаковыми obj.id
.
Например: Если у нас есть эти объекты на наборе queryset:
< < <Какова наилучшая практика для этого?
Model.objects.all().values("group_by_field").annotate(all_qty=Sum("total_price"))
Если вам не нужен доступ к ней через базу данных, вы можете вести текущий итог в дикте по мере прохождения отчетов. Я предполагаю, что вам не нужна эта информация непосредственно в списке 'data', поскольку это не сопоставление один к одному.
reports: queryset
totals_dict = {}
for reports in reports:
data.append(DataModel(
model_id=report.num,
title=report.title,
total_price=report.total_amount,
))
if report.num in my_dict:
totals_dict[report.num] += report.total_amount
else:
totals_dict[report.num] = report.total_amount
#or, in one line
#totals_dict[report.num] = totals_dict.get(report.num, 0) + report.total_amount