Jinja2 变量超出范围

Jinja2 variable out of scope

我有以下模板:

{% set rotator = 1 %}
{% for idx in range(1, count|int + 1) %}
{% if rotator == 4 %}
  {% set rotator = 1 %}
{% endif %}
{
  "id": "{{ '%02d' % idx }}",
  "value": "{{rotator}}"
},
{% set rotator = rotator + 1 %}
{% endfor %}

由于此处讨论的问题,此模板无效 How to increment a variable on a for loop in jinja template? 对于 doesn't work 我的意思是旋转器始终是一个并且不会改变。

那我该如何克服下面的问题呢?

模板:

{% for idx in range(1, count|int + 1) %}
{
  "id": "{{ '%02d' % idx }}",
  "value": "{{ (idx+2)%3+1 }}"
},
{% endfor %}

结果(count=7):

{
  "id": "01",
  "value": "1"
},
{
  "id": "02",
  "value": "2"
},
{
  "id": "03",
  "value": "3"
},
{
  "id": "04",
  "value": "1"
},
{
  "id": "05",
  "value": "2"
},
{
  "id": "06",
  "value": "3"
},
{
  "id": "07",
  "value": "1"
},

我保留结尾 , 因为你也没有指定如何处理它。