Как сделать суммирование двух словарей с помощью агрегата в django, и показать это в HTML?

я новичок в django, не могли бы вы, эксперты, любезно помочь мне...

Итак, у меня есть два модуля, и в CBV's get_context_data они оба возвращают общую сумму, теперь я хочу сложить оба итога и отобразить их на моей HTML странице, я честно пробовал много вещей, но я всегда получаю ошибку.

вот мой views.py

def get_context_data(self, **kwargs):
    # Call the base implementation first to get a context
    context = super().get_context_data(**kwargs)
    today = datetime.datetime.now()
    # Order.objects.filter(created_at__year=today.year, created_at__month=today.month)
    
    context['expense1'] = Tracker.objects.filter(user=self.request.user)


    context['Total1'] =(Body.objects.filter(user=self.request.user, pub_date__year=today.year, pub_date__month=today.month).aggregate(total=Sum(F('price') * F('quantity'))) , Sport.objects.filter(user=self.request.user, pub_date__year=today.year, pub_date__month=today.month).aggregate(total=Sum(F('price') * F('quantity'))))

    return context

Итак, что я хочу, так это , тотал тела + тотал спорта, который является asgn к контексту "total1", и затем я хочу показать его в HTML

мой HTML файл вот как я отображаю общее количество,

Итого: {{Тотал1}}

Ваш код oneliner немного запутан, но я думаю, что понял, где вы допустили ошибку - агрегат возвращает dict с ключом в аргументе в качестве возвращаемого значения. Смотрите ниже:

body_total = Body.objects.filter(
  user=self.request.user, pub_date__year=today.year, pub_date__month=today.month
).aggregate(total=Sum(F('price') * F('quantity')))['total']

sport_total = Sport.objects.filter(
  user=self.request.user, pub_date__year=today.year, pub_date__month=today.month
).aggregate(total=Sum(F('price') * F('quantity')))['total']

# Note: this is a tuple, not a sum of the two, so check what you need :)
context['Total1'] = (body_total, sport_total)

# For total sum of two totals, just add them of course. 
# It seems like this is what you need from the post, and not the
# line above.
context['Total1'] = body_total + sport_total

PS. код не протестирован. Я немного не уверен, что выражения F работают нормально (скорее всего да). Дайте мне знать, если есть какие-либо проблемы.

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