计算聚合查询集的总和

时间:2011-09-29 19:30:46

标签: python django django-models django-views

所以我有一个查询集,它返回一个金融机构列表,以及我与每个机构的投资总额。

views.py

total_list = plan.investment_set.filter(maturity_date__gte= '%s-1-1' % current_year).values('financial_institution__abbr').annotate(Sum('maturity_amount'))

我现在要做的是找到所有这笔钱的总额。我的问题是,我如何计算总和以找到我所有投资的总和。

2 个答案:

答案 0 :(得分:1)

我相信你正在寻找.aggregate()

total_list = plan.investment_set.filter(
    maturity_date__gte= '%s-1-1' % current_year
).aggregate(Sum('maturity_amount'))

应该给你:

{'maturity_amount__sum': <total amount>}

答案 1 :(得分:0)

抱歉这会造成麻烦。您正在计算maturity_amount命名值的字段吗?如果是这样,您可以尝试使用适用于上一个问题(Using Django to summarize Report)的内容:

grand_total = plan.investment_set.annotate(Sum('value'))