在Django模板中自增变量

11 投票
3 回答
13977 浏览
提问于 2025-04-15 20:47

大家好,

我们在Django模板中,怎么能像下面这样增加一个值呢,

  {{ flag =0 }}

  {% for op in options %}
   {{op.choices}}<input type="radio" name="template" id="template" value="template{{flag++}}"/>
  {% endfor %}

谢谢大家..

3 个回答

3

你可能还想了解一下如何让Django的表单生成这些值。

9

在模板里,你是不能这样做的。变量赋值是不被允许的。

不过,如果你只是想在循环中使用一个计数器,那你只需要用 {{ forloop.counter }} 就可以了。

20

我觉得在模板里修改数据不是很合适。在你的具体情况下,你可以使用 forloop.counter 这个变量。

比如说:

{% for op in options %}
  {{op.choices}}<input type="radio" name="template" id="template{{forloop.counter}}" value="template{{forloop.counter}}"/>
{% endfor %}

另外,我还把这个数字加到了 <input /> 标签的 id 属性上。否则你会有多个输入框的 id 是一样的。

补充一下:我之前没注意到这是一个单选框。其实每个 <input type="radio" /> 可以用相同的名字。

撰写回答