for
Django 템플릿에서 숫자 루프를 작성하려면 어떻게합니까 ? 나는 같은 것을 의미한다
for i = 1 to n
답변
특별한 태그와 추가 컨텍스트가없는 작은 경우에 잘 작동하는 간단한 기술을 사용했습니다. 때때로 이것은 편리합니다
{% for i in '0123456789'|make_list %}
{{ forloop.counter }}
{% endfor %}
답변
{% with ''|center:n as range %}
{% for _ in range %}
{{ forloop.counter }}
{% endfor %}
{% endwith %}
답변
불행히도 Django 템플릿 언어 에서는 지원되지 않습니다 . 거기에있는 몇 가지 의 제안 하지만, 조금 복잡한 것 같다. 컨텍스트에 변수를 넣을 것입니다.
...
render_to_response('foo.html', {..., 'range': range(10), ...}, ...)
...
그리고 템플릿에서 :
{% for i in range %}
...
{% endfor %}
답변
이 문제에 대한 나의 생각은 가장 좋다고 생각합니다. templatetags 디렉토리에 my_filters.py를 유지합니다.
@register.filter(name='times')
def times(number):
return range(number)
그리고 당신은 다음과 같이 사용할 것입니다 :
{% load my_filters %}
{% for i in 15|times %}
<li>Item</li>
{% endfor %}
답변
어쩌면 이렇게?
{% for i in "x"|rjust:"100" %}
...
{% endfor %}
답변
바인딩을 전달할 수 있습니다
{'n' : range(n) }
템플릿으로 이동 한 다음
{% for i in n %}
...
{% endfor %}
0 기반 동작 (0, 1, … n-1)이 나타납니다.
(Python3 호환성을 위해 업데이트 됨)
답변
n
자신을 전달하지 않고 range(n)
[0에서 n-1까지의 정수 목록 포함] 뷰에서 템플릿으로 전달하고 후자에서 수행합니다 {% for i in therange %}
(일반적으로 0이 아닌 1을 기본으로 고집하는 경우) forloop.counter
루프 본문에서 사용할 수있는 기반 인덱스 ;-).
![](http://daplus.net/wp-content/uploads/2023/04/coupang_part-e1630022808943-2.png)