Как получить доступ к самому внешнему forloop.счетчик с вложенными циклами for в шаблонах Django?
можно ли получить доступ к forloop.счетчик для самого внешнего цикла for В следующем шаблоне в Django:
{% for outerItem in outerItems %}
{% for item in items%}
<div>{{ forloop.counter }}. {{ item }}</div>
{% endfor %}
{% endfor %}
forloop.счетчик возвращает самый внутренний счетчик цикла for В приведенном выше примере
2 ответов:
можно использовать
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 поддерживает два метода.
это более ясно, когда есть много для петель
Comments