django template {% for %} 에서 몇번째 항목인지 알수 있는지

2023. 3. 10. 22:06카테고리 없음

Django 템플릿의 {% for %} 태그에서 현재 몇 번째 항목인지 알아내기 위해서는 forloop 변수를 사용할 수 있습니다. forloop 변수는 for 루프가 실행되는 동안 다음과 같은 속성을 가집니다.

forloop.counter: 루프가 실행된 횟수(1부터 시작)
forloop.counter0: 루프가 실행된 횟수(0부터 시작)
forloop.revcounter: 루프가 실행된 횟수(끝에서부터 1부터 시작)
forloop.revcounter0: 루프가 실행된 횟수(끝에서부터 0부터 시작)
forloop.first: 현재 항목이 첫 번째 항목인지 여부(참 또는 거짓)
forloop.last: 현재 항목이 마지막 항목인지 여부(참 또는 거짓)
forloop.parentloop: 중첩된 {% for %} 태그가 있는 경우, 상위 루프의 forloop 객체를 참조합니다.
이 중, 현재 항목이 몇 번째 항목인지 알아내기 위해서는 forloop.counter 또는 forloop.counter0 속성을 사용할 수 있습니다.

예를 들어, 다음과 같이 {% for %} 태그에서 forloop.counter 속성을 사용하여 현재 항목의 번호를 출력할 수 있습니다.

{% for item in items %}
  <p>이 항목은 {{ forloop.counter }}번째 항목입니다. 값은 {{ item }}입니다.</p>
{% endfor %}
위 예제에서 forloop.counter는 현재 항목이 몇 번째 항목인지를 나타내며, item은 현재 항목의 값을 나타냅니다. 이를 사용하여 리스트나 쿼리셋의 각 항목에 대해 번호를 매길 수 있습니다.

 

{% if question.sub_category == 4 %}
    <p>{{ question.title }}</p>
    <p>{{ question.sub_title }}</p>
    {% if question.dtv.id is not 'None' %}
            {% for raddata in question.dtv.data %}
                 <input type="radio" name="group{{ question.dtv.id }}" value="{{ forloop.counter0 }}" >{{ raddata }} &nbsp; &nbsp;
            {% endfor %}
    {% endif %}
{% endif %}