Django의 주기

3096 단어
Django의 주기
Django는 루프 종료를 지원하지 않습니다.만약 우리가 순환에서 물러나고 싶다면, 교체되고 있는 변수를 바꾸어 교체가 필요한 항목만 포함하도록 할 수 있다.같은 이치로 Django도continue 문장을 지원하지 않기 때문에 현재 교체 작업을 순환 헤더로 되돌릴 수 없습니다.(본 장의 잠시 후 이념과 제한 소절을 참고하여 이 디자인을 결정한 배후 원인을 알아보세요)
{% for%} 탭이 순환에 특수한 forloop 템플릿 변수를 설정합니다.이 변수는 현재 순환이 진행되고 있는 정보를 제공할 수 있습니다.
forloop.counter는 항상 현재 순환의 실행 횟수를 나타내는 정수 계수기입니다.이 계수기는 1에서 시작하기 때문에 첫 번째 순환할 때forloop.counter가 1로 설정됩니다.예는 다음과 같습니다.
{% for item in todo_list %}
<p>{{ forloop.counter }}: {{ item }}</p>
{% endfor %}

forloop.counter0은forloop과 유사합니다.counter, 하지만 그것은 0에서 계산됩니다.순환을 처음 실행할 때 이 변수는 0으로 설정됩니다.
forloop.revcounter는 순환 중 남은 항목을 나타내는 정형 변수입니다.순환이 처음 실행될 때forloop.revcounter는 시퀀스에 있는 항목의 총수로 설정됩니다.마지막 순환 실행 중, 이 변수는 1로 설정됩니다.
forloop.revcounter0은forloop과 유사합니다.revcounter, 그러나 0을 끝 색인으로 합니다.첫 번째 순환을 실행할 때, 이 변수는 서열로 설정된 항목의 개수를 1로 줄인다.마지막 교체 시 이 변수는 0입니다.
forloop.first는 부울 값입니다.이 변수는 처음 루프를 실행할 때 True이며 다음 시나리오에서는 유용합니다.
{% for object in objects %}
{% if forloop.first %}<li class="first">{% else %}<li>{% endif %}
{{ object }}
</li>
{% endfor %}

forloop.last는 부울 값이다.마지막 루프를 수행할 때 True로 설정됩니다.흔히 볼 수 있는 방법은 일련의 링크 사이에 파이프 문자를 놓는 것이다(|)
{% for link in links %}{{ link }}{% if not forloop.last %} | {% endif %}{% endfor %}

The above template code might output something like this::

Link1 | Link2 | Link3 | Link4

3.

forloop.parentloop은 현재 순환의 상급 순환을 가리키는 forloop 대상의 인용입니다.예는 다음과 같습니다.
{% for country in countries %}
<table>
{% for city in country.city_list %}
<tr>
<td>Country #{{ forloop.parentloop.counter }}</td>
<td>City #{{ forloop.counter }}</td>
<td>{{ city }}</td>
</tr>
{% endfor %}
</table>
{% endfor %}

forloop 변수는 순환에서만 사용할 수 있으며, 템플릿 해상도가 {% endfor%} 탭에 닿을 때 forloop에 접근할 수 없습니다.
Context와 forloop 변수는 {% for%} 블록에서 존재하던 변수가 덮어쓰지 않도록 제거됩니다.Django는 이 변수를 forloop으로 이동합니다.parentloop에서보통 우리는 이 문제를 걱정할 필요가 없지만, 템플릿에서 forloop이라는 변수를 정의하면 (물론 우리는 이렇게 하는 것을 반대합니다) {% for%} 블록에서 forloop에 있습니다.parentloop이 재명명되었습니다.
for
그룹의 모든 요소를 돌아가며 조회합니다.예를 들어 주어진 운동선수의 서열을 표시합니다.list``:

    {% for athlete in athlete_list %}
  • {{ athlete.name }}
  • {% endfor %}

너도 마찬가지로 목록을 거꾸로 조회할 수 있다.
``for`` 순환은 많은 순환에 유용한 변수를 설정했다(표F-1 참조).
Inline literal start-string without end-string.
표 F-1.{% for%} 순환 중 사용 가능한 변수
변수 이름 설명
forloop.counter 순환의 현재 중복값 (1 표시).
forloop.counter0 순환의 현재 중복값 (0 표시).
forloop.revcounter가 마지막 중복수까지 순환합니다. (1 표시)
forloop.revcounter 0이 마지막 중복수로 순환합니다. (0으로 표시)
forloop.first의 첫 번째 순환은 ``True``이다.
forloop.last의 마지막 순환은'True'입니다.
forloop.parentloop은 현재 주기 위에 있는 중첩 순환에 사용됩니다.

좋은 웹페이지 즐겨찾기