如何使用Django模板中的嵌套for循环访问最外层的forloop.counter?
是否可以访问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 }}. {{ item }}</div> {% endfor %} {% endfor %} {outerItems%中的outerItem的% {items%%中的项的%s
{% for outerItem in outerItems %}
{% for item in items%}
<div>{{ forloop.counter }}. {{ 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 }}. {{ item }}</div>
{% endfor %}
{% endwith %}
{% endfor %}
注意:With不允许在=
我已经检查过,Django 1.4.x-Django 1.9.x支持这两种方法
当有许多for循环时,这一点更为明显。在某些情况下,
forloop.parentloop
是不够的
查看完整的解决方案及其标签
{% with outer_counter=forloop.counter %}