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

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

{% for outerItem in outerItems %}
    {% for item in items%}
        <div>{{ forloop.counter }}.&nbsp;{{ 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 }}.&nbsp;{{ 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 %} 태그를 확인하세요 .


답변