Django 템플릿에서 중첩 된 for 루프를 사용하여 가장 바깥 쪽 forloop.counter에 액세스하는 방법은 무엇입니까?


118

Django의 다음 템플릿에서 가장 바깥 쪽 for 루프에 대한 forloop.counter에 액세스 할 수 있습니까?

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

forloop.counter는 위의 예에서 가장 안쪽에있는 for 루프의 카운터를 반환합니다.

답변:


230

당신은 당신의 경우에 그래서 forloop.parentloop외부에 도착하는 데 사용할 수 있습니다 .forloop{{forloop.parentloop.counter}}


14

당신은 또한 함께 사용할 수 있습니다

더 간단한 이름으로 복잡한 변수를 캐시합니다. 이것은 "비싼"방법 (예 : 데이터베이스에 접속하는 방법)에 여러 번 액세스 할 때 유용합니다.

{% 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가 두 가지 방법을 지원하는지 확인했습니다.

for 루프가 많을 때 더 명확합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.