如何使用Django模板中的嵌套for循环访问最外层的forloop.counter?

如何使用Django模板中的嵌套for循环访问最外层的forloop.counter?,django,django-templates,Django,Django Templates,是否可以访问Django中以下模板中最外层for循环的forloop.counter: {% for outerItem in outerItems %} {% for item in items%} <div>{{ forloop.counter }}.&nbsp;{{ item }}</div> {% endfor %} {% endfor %} {outerItems%中的outerItem的% {items%%中的项的%s

是否可以访问Django中以下模板中最外层for循环的forloop.counter:

{% for outerItem in outerItems %}
    {% for item in items%}
        <div>{{ forloop.counter }}.&nbsp;{{ item }}</div>
    {% endfor %}
{% endfor %}
{outerItems%中的outerItem的%
{items%%中的项的%s}
{{forloop.counter}}。{{item}}
{%endfor%}
{%endfor%}

forloop.counter返回上述示例中最内层的for循环计数器

您可以使用
forloop.parentloop
到达外层
forloop
,因此在您的情况下
{{forloop.parentloop.counter}
您也可以使用

以更简单的名称缓存复杂变量。这在多次访问“昂贵”方法(例如,访问数据库的方法)时非常有用

{% for outerItem in outerItems %}
  {% with forloop.counter as outer_counter %}
    {% for item in items%}
        <div>{{ outer_counter }}.&nbsp;{{ item }}</div>
    {% endfor %}
  {% endwith %}
{% endfor %}
注意:With不允许在
=

我已经检查过,Django 1.4.x-Django 1.9.x支持这两种方法


当有许多for循环时,这一点更为明显。在某些情况下,
forloop.parentloop
是不够的

查看完整的解决方案及其标签

{% with outer_counter=forloop.counter %}