【发布时间】:2014-08-27 10:44:23
【问题描述】:
我在 Jinja2 中有一个列表,其中包含本身的 dicts。类似的东西
items = [{'name':'name1', 'points':5}, {'name':'name2', 'points':7},
{'name':'name3', 'points':2}, {'name':'name4', 'points':11}]
我需要的是得到所有 points 的总和,然后在某个地方打印出来。
目前我得到的是:
{% set points = 0 -%}
{% for single_item in items -%}
{% set points = points + single_item["points"] -%}
{{points}}
{% endfor %}
{{ points }}
结果是:5 12 14 25 0
有什么方法可以让我在循环之外获得 points 的值 25(循环中的最后一个值)?
【问题讨论】:
-
这种逻辑属于控制器,而不是模板。相应地预处理您的数据,并将
items作为total传递给模板。 -
@LukasGraf 也许您应该将其发布为答案?
-
@LukasGraf 我完全同意你的看法,但在我的情况下,这会造成很大的混乱。