Приращение переменной в шаблонах django

Все,

Как мы можем увеличить значение, подобное следующему в шаблонах django,

  {{ flag =0 }}

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

спасибо..

Ответ 1

Я не думаю, что он намеревался изменить данные в ваших шаблонах. В вашем конкретном случае вместо этого вы можете использовать переменную forloop.counter.

Например:

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

Также обратите внимание, что я добавил это число в атрибуты id тега <input />. В противном случае у вас будет несколько входов с одним и тем же идентификатором.

EDIT: Я не заметил, что это радиовход. Разумеется, вы можете иметь одно и то же имя для каждого <input type="radio" />.

Ответ 2

Вы явно не можете сделать это в шаблоне. Назначение переменной не разрешено.

Однако, если все, что вам нужно, это счетчик в вашем цикле, вам просто нужно использовать {{ forloop.counter }}.

Ответ 3

Вы также можете посмотреть, как Django forms производит эти значения