Django-템플릿의 for 루프에서 반복되는 숫자


250

django 템플릿에 일을 표시하는 다음 for 루프가 있습니다. 루프에서 숫자 (아래의 경우 i)를 반복 할 수 있는지 궁금합니다. 아니면 데이터베이스에 저장 한 다음 days.day_number 형식으로 쿼리해야합니까?

{% for days in days_list %}
    <h2># Day {{ i }} - From {{ days.from_location }} to {{ days.to_location }}</h2>
{% endfor %}

답변:


593

장고가 제공합니다. 다음 중 하나를 사용할 수 있습니다.

  • {{ forloop.counter }}인덱스는 1 에서 시작합니다 .
  • {{ forloop.counter0 }}인덱스는 0 에서 시작합니다 .

템플릿에서 다음을 수행 할 수 있습니다.

{% for item in item_list %}
    {{ forloop.counter }} # starting index 1
    {{ forloop.counter0 }} # starting index 0

    # do your stuff
{% endfor %}

자세한 정보 : for | 내장 템플릿 태그 및 필터 | 장고 문서


1
그러나 길이는 1입니다.
VIKAS KOHLI

2
중첩 된 for 루프는 어떻습니까? 내부 또는 외부 루프를 계산하려면 장고에게 어떻게 말할 수 있습니까?
Tim Woocker

4
@ crey4fun, forloop.parentloop자세한 내용은 문서를 참조하십시오.
Rohan

89

또한 이것을 사용할 수 있습니다 :

{% if forloop.first %}

또는

{% if forloop.last %}

10
질문에 대한 답이 아니라이 질문을 검색 할 많은 사람들의 대답입니다. 좋은 물건!
kontur

1

[Django HTML 템플릿은 현재 색인을 지원하지 않지만] 목표를 달성 할 수 있습니다.

당신이 사용하는 경우 사전 views.py에 사전 내에서 다음 반복 인덱스와 같은 키를 사용하여 가능하다. 예:

{% for key, value in DictionartResult.items %} <!-- dictionartResult is a dictionary having key value pair-->
<tr align="center">
    <td  bgcolor="Blue"><a href={{value.ProjectName}}><b>{{value.ProjectName}}</b></a></td>
    <td> {{ value.atIndex0 }} </td>         <!-- atIndex0 is a key which will have its value , you can treat this key as index to resolve-->
    <td> {{ value.atIndex4 }} </td>
    <td> {{ value.atIndex2 }} </td>
</tr>
{% endfor %}

그렇지 않으면 사전 내부에서 List 를 사용하면 첫 번째 및 마지막 반복뿐만 아니라 모든 색인을 제어 할 수 있습니다. 예:

{% for key, value in DictionaryResult.items %}
    <tr align="center">
    {% for project_data in value %}
        {% if  forloop.counter <= 13 %}  <!-- Here you can control the iteration-->
            {% if forloop.first %}
                <td bgcolor="Blue"><a href={{project_data}}><b> {{ project_data }} </b></a></td> <!-- it will always refer to project_data[0]-->
            {% else %}
                <td> {{ project_data }} </td> <!-- it will refer to all items in project_data[] except at index [0]-->
            {% endif %}
            {% endif %}
    {% endfor %}
    </tr>
{% endfor %}

끝 경우;)

// Hope는 Dictionary, List, HTML 템플릿, For Loop, Inner loop, If Else로 솔루션을 다루었습니다. 더 많은 방법을 보려면 Django HTML Documentaion : https://docs.djangoproject.com/en/2.2/ref/templates/builtins/

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