Django의 다음 템플릿에서 가장 바깥 쪽 for 루프에 대한 forloop.counter에 액세스 할 수 있습니까?
{% for outerItem in outerItems %}
{% for item in items%}
<div>{{ forloop.counter }}. {{ item }}</div>
{% 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 %}
높은 버전의 Django를 사용하는 경우 사용할 수 있습니다.
{% with outer_counter = forloop.counter %}
Django 1.4.x-Django 1.9.x가 두 가지 방법을 지원하는지 확인했습니다.
for 루프가 많을 때 더 명확합니다.
답변
어떤 경우에는 forloop.parentloop
충분하지 않습니다.
본격적인 솔루션을 보려면 django-templateaddons3 및 {% counter %} 태그를 확인하세요 .