过滤Django 2.1后汇总一列

时间:2019-01-23 12:55:08

标签: django templates filter view sum

这是我的for循环(在我的template.html中):

{% for item in filter.qs %}
    <tr>
    <th scope="row">{{ item.id }}</th>
    <td>{{ item.nome }}</td>
    <td>{{ item.data|date:"d, F" }}</td>
    <td>{{ item.tipo_pgto}}</td>
    <td>{{ item.mes }}</td>
    <td>{{ item.entrada }}</td>
    <td>{{ item.valor}}</td>
    </tr>
{% endfor %}

变量{{item.valor}}在过滤后保留一个十进制数字。如何求和并将结果放入HTML的另一部分?更好的做法是现在使用JavaScript,还是可以在view.py中创建一个变量,然后将其放入html中?

1 个答案:

答案 0 :(得分:1)

在JS中执行此操作会很好,但是IMO从视图中将其传递通过上下文会更好。 JS很难进行测试。

如果您使用Jinja模板(非常易于设置和使用),则可以使用其过滤器:

{{ filter.qs | sum(attribute='valor') }}