我在模板中使用Django根据类别字段重新组合多维列表。每个类别我还需要来自同一列表的整数字段的总和。我已经阅读了很多关于此的问题,似乎在模板渲染之前我必须在视图中执行此操作。然而,这意味着我必须单独定义每个类别的总数,而我希望重组能为我省去这个麻烦。有没有其他更好的方法呢?
{% regroup shops|dictsort:"category" by category as category_list %}
{% for clist in category_list %}
# here should come the total per category
{% endfor %}
答案 0 :(得分:1)
您可以在模型中创建函数,然后在模板中调用它。
Category(models.Model)
........
def total(self):
qs = Category.objects.filter(id=self).aggregate(Sum('amount'))
sum = qs['amount__sum']
if not sum:
sum = 0.00
return sum
{% regroup shops|dictsort:"category" by category as category_list %}
{% for clist in category_list %}
{{clist}} - {{clist.total}}
{% endfor %}
答案 1 :(得分:0)
我认为这会回答你的问题,How can i implement a running total in django Template?。标题有点令人困惑,但我认为你可以在那里得到一些东西。