栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

递增变量时重置Jinja for循环范围

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

递增变量时重置Jinja for循环范围

如Jinja2模板参考中所述,这确实是一个范围界定问题:

作用域行为

请记住,无法在块内设置变量并使变量显示在块外。这也适用于循环。

[…]

从版本2.10开始,可以使用

namespace
允许跨范围传播更改的对象来处理更复杂的用例[。]

因此,您可以使用

namespace()
该类作为变通方法:

{% set ns = namespace(items=0) %}{% for line in current_order.order_lines %}    {% set ns.items = ns.items + line.quantity %}{% endfor %}{{ ns.items }}

就是说,如果您先计算项目计数并将其作为对象或其他上下文的一部分传递到模板中,那就 更好

current_order

另一个选择是使用

sum()
过滤器对这些数量求和:

{% for line in current_order.order_lines %} #loops twice in current test    <!-- render order line -->{% endfor %}{{ current_order.order_lines|sum(attribute='quantity') }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/661671.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号