【问题标题】:Summing a column after filtering Django 2.1过滤Django 2.1后对一列求和
【发布时间】:2019-06-17 01:48:11
【问题描述】:

这是我的 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 中?

【问题讨论】:

    标签: django templates filter view sum


    【解决方案1】:

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

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

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

    【讨论】:

    • 嗨@Tom!我试过了,但它一直显示以下错误:无效过滤器:'sum',谢谢帮助
    • 嘿@Tom 这是我的错,我使用的是默认的 django 模板,我将尝试切换到 jinja 并尝试您的解决方案,谢谢。
    猜你喜欢
    • 2021-10-29
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    • 2013-08-19
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    相关资源
    最近更新 更多