【发布时间】:2015-01-07 06:57:57
【问题描述】:
在jinja2中,运算符|用作过滤,如{{ user_input | safe }}。但是,| 也是一个有效的 python 运算符,比如按位或、设置联合等。假设我在模板中有以下代码
{% for elem in (set1 | set2) %} elem.render_some_string() {% endfor %}
Jinja 抛出异常
File "some_template_file.txt", line xxx, in template
{% for elem in (set1 | set2) %} elem.render_some_string() {% endfor %}
jinja2.exceptions.TemplateAssertionError: no filter named 'set2'
这是可以理解的。但是有没有办法解决这个问题,比如告诉 jinja 不要将 | 运算符解释为过滤器?我希望有一个比“用set1.union(set2) 替换(set1 | set2)”更好的解决方案——除非这是唯一可能的解决方案(或唯一推荐的解决方案)。
【问题讨论】:
-
据我所知,建议的解决方案是可行的方法。但很高兴知道是否有办法覆盖事物。