如何在Django模板中求和这个查询集元素?

use*_*957 2 django django-queryset

我有一个查看报告的功能:

def view_report(request):
    a = Bill.objects.all()
    return render_to_response('report.html', {'a':a}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

有一个名为price的属性,它有数字元素.我想总结所有价格并在Django模板中显示为一个数字:

{% for i in a %}

{{ i.price }}

{% endfor %}
Run Code Online (Sandbox Code Playgroud)

这只是返回所有价格.我想总结所有这些价格,并显示为一个.我尝试使用{{ i.price|sum }}哪个不起作用.

Dan*_*man 10

不要在模板中这样做.在视图中使用聚合API:

from django.db.models import Sum
total_price = Bill.objects.all().aggregate(Sum('price'))
Run Code Online (Sandbox Code Playgroud)

  • 只需使用普通字典访问:`total_price ['price__sum']`,或模板`{{total_price.price__sum}}`. (2认同)