Ответ 1
Вы можете использовать forloop.parentloop
для доступа к внешнему forloop
, поэтому в вашем случае {{forloop.parentloop.counter}}
.
Можно ли получить доступ к forloop.counter для внешнего цикла for в следующем шаблоне в Django:
{% for outerItem in outerItems %}
{% for item in items%}
<div>{{ forloop.counter }}. {{ item }}</div>
{% endfor %}
{% endfor %}
forloop.counter возвращает самый внутренний для счетчика циклов в приведенном выше примере
Вы можете использовать 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 %}
если используется высокая версия Django вы можете использовать
{% with outer_counter = forloop.counter %}
Я проверил, Django 1.4.x - Django 1.9.x поддерживает два метода.
это более понятно, когда у них много циклов