2013-01-17 46 views
2

我有一個函數來查看報告:如何在Django模板中總結這個查詢集合元素?

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

有具有數字元素的屬性叫價。我想彙總所有的價格並在Django模板中顯示爲一個數字:

{% for i in a %} 

{{ i.price }} 

{% endfor %} 

這只是返回所有價格。我想總結所有這些價格並顯示爲一個。我嘗試使用{{ i.price|sum }}哪些不起作用。

回答

10

不要在模板中這樣做。在您看來,使用aggregation API

from django.db.models import Sum 
total_price = Bill.objects.all().aggregate(Sum('price')) 
+0

非常感謝您的回答。我以字典格式獲得答案:{'price__sum':89}。我只想要價值而不是關鍵。我怎樣才能做到這一點?謝謝 – user1881957

+2

只需使用普通詞典訪問:'total_price ['price__sum']',或在模板{{total_price.price__sum}}'中。 –

+0

謝謝丹尼爾!你是最棒的! – user1881957