我正在尝试迭代列表以填充用于设置隐藏字段值的变量。请参阅下面的代码示例。我能够迭代列表并连接变量,但是当我将变量的内容分配给隐藏的输入值时,那里什么都没有。这样做的正确方法是什么?
{% set hdnfiles = '' %}
{% if tr.files is not none and tr.files|length > 0 %}
{% for file in tr.files %}
{% if hdnfiles|length > 0 %}
{% set hdnfiles = hdnfiles ~ ";" ~ file %}
{% else %}
{% set hdnfiles = file %}
{% endif %}
{% endfor %}
{% endif %}
<input type="hidden" id="filesHidden" name="filesHidden" value="{{ hdnfiles }}"/>
答案 0 :(得分:0)
set
不会覆盖外部作用域上的值。 Jinja中的范围与Python不同;控制结构(例如if
和for
)的范围与其周围的代码(初始set
已完成)的范围不同。 Way back in 2011, Jinja's author stated:
对于新的编译器后端,我会记住它,但是在当前由于性能原因无法实现的那个。
考虑在渲染模板之前在Python中构建此字符串,而不是在模板中构建它。