我正在使用Flask,我有一个WTF表单,其中12个输入字段名为sold_1,sold_2,...,sold_12。
我想在Jinja中使用如下循环生成这些字段:
{% for r in range(1, 13) %}
{{ form.sold_ }}{{ r }}
{% endfor %}
或类似的语法,但它不起作用。
我以一种非常复杂的方式解决了它,如下所示:
{% set tmp = "sold_x" %}
{% for r in range(1, 13) %}
{{ form[tmp | replace('x', r)] }}
{% endfor %}
但我想知道是否有一种更清洁的方式。
由于
答案 0 :(得分:2)
你可以用这个:
{% for r in range(1, 13) %}
{{ form.sold_ ~ r }}
{% endfor %}
或者,如果您希望输入字段名称为sold_nr
:
{% for r in range(1, 13) %}
{{ 'sold_' ~ r }}
{% endfor %}
有关详细信息,请参阅this answer。
修改强>
使用@dirn和@Libra sugestions正确的答案是:
{% for r in range(1, 13) %}
{{ form['sold_' ~ r] }}
{% endfor %}