模板中的Django - 重新组合后的总列表

时间:2013-03-03 18:12:11

标签: django templates

我在模板中使用Django根据类别字段重新组合多维列表。每个类别我还需要来自同一列表的整数字段的总和。我已经阅读了很多关于此的问题,似乎在模板渲染之前我必须在视图中执行此操作。然而,这意味着我必须单独定义每个类别的总数,而我希望重组能为我省去这个麻烦。有没有其他更好的方法呢?

{% regroup shops|dictsort:"category" by category as category_list %}
{% for clist in category_list %}
# here should come the total per category
{% endfor %}

2 个答案:

答案 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?。标题有点令人困惑,但我认为你可以在那里得到一些东西。