Как получить доступ к самому внешнему forloop.счетчик с вложенными циклами for в шаблонах Django?



можно ли получить доступ к forloop.счетчик для самого внешнего цикла for В следующем шаблоне в Django:



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


forloop.счетчик возвращает самый внутренний счетчик цикла for В приведенном выше примере

626   2  

2 ответов:

можно использовать 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 %}

при использовании высокой версии Django вы могли бы использовать

{% with outer_counter = forloop.counter %}

Я проверил, Django 1.4.x-Django 1.9.x поддерживает два метода.

это более ясно, когда есть много для петель

Comments

    Ничего не найдено.