我有一个已付价值列表,并想显示已付总额。我已经使用了聚合和Sum
一起计算值。问题是,我只想打印出总值,但聚合打印出:{'amount__sum': 480.0}
(480.0 为总增加值。
在我看来,我有:
from django.db.models import Sum
total_paid = Payment.objects.all.aggregate(Sum('amount'))
为了在页面上显示值,我有一个 mako 模板,其中包含以下内容:
<p><strong>Total Paid:</strong> ${total_paid}</p>
我怎样才能让它显示480.0
代替{'amount__sum': 480.0}
?
我不相信有一种方法可以只获得价值。
你可以这样做${{ total_paid.amount__sum }}
在你的模板中。或者做total_paid = Payment.objects.all().aggregate(Sum('amount')).get('amount__sum', 0.00)
在你看来。
EDIT
正如其他人指出的那样,.aggregate()
将始终返回一个字典,其中包含存在的聚合中的所有键,因此这样做.get()
对结果来说是没有必要的。但是,如果查询集为空,则每个聚合值将为None
。因此,根据您的代码,如果您期望浮动,您可以这样做:
total_paid = Payment.objects.all().aggregate(Sum('amount'))['amount__sum'] or 0.00
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)