我在 Jinja2 中有一个列表,它本身包含字典。有点像
items = [{'name':'name1', 'points':5}, {'name':'name2', 'points':7},
{'name':'name3', 'points':2}, {'name':'name4', 'points':11}]
我需要的是获取所有点数的总和,并在以后的某个地方打印出来。
目前我得到的是:
{% set points = 0 -%}
{% for single_item in items -%}
{% set points = points + single_item["points"] -%}
{{points}}
{% endfor %}
{{ points }}
结果是:5 12 14 25 0
有什么方法可以让循环外的 points 具有值 25(循环中的最后一个值)?
最佳答案
Jinja2 包含一个 sum 过滤器,它会为你做这件事:
{{ items | sum(attribute='points') }}
请参阅此处的文档:https://jinja.palletsprojects.com/templates/#jinja-filters.sum
关于python - Jinja 2 中列表的总和元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25525101/