是否可以在 Django 的以下模板中访问最外层 for 循环的 forloop.counter:
{% for outerItem in outerItems %}
{% for item in items%}
<div>{{ forloop.counter }}. {{ item }}</div>
{% endfor %}
{% endfor %}
forloop.counter 返回上例中最内层的 for 循环计数器
您可以使用 forloop.parentloop
到达外部 forloop
,因此在您的情况下为 {{forloop.parentloop.counter}}
。
您也可以使用 with
以更简单的名称缓存复杂变量。这在多次访问“昂贵”方法(例如,访问数据库的方法)时很有用。
{% for outerItem in outerItems %}
{% with forloop.counter as outer_counter %}
{% for item in items%}
<div>{{ outer_counter }}. {{ item }}</div>
{% endfor %}
{% endwith %}
{% endfor %}
如果使用高版本的 Django,你可以使用
{% with outer_counter=forloop.counter %}
注意:With 不允许在 =
之前或之后有空格
我检查过,Django 1.4.x - Django 1.9.x 支持这两种方法。
当有很多 for 循环时,这更清楚