我如何写一个数字循环在Django模板?我的意思是
for i = 1 to n
我如何写一个数字循环在Django模板?我的意思是
for i = 1 to n
当前回答
显示1到20个数字:
{% for i in "x"|rjust:"20"|make_list %}
{{ forloop.counter }}
{% endfor %}
这也可以帮助你: (count_all_slider_objects来自视图)
{% for i in "x"|rjust:count_all_slider_objects %}
{{ forloop.counter }}
{% endfor %}
or
{% with counter=count_all_slider_objects %}
{% if list_all_slider_objects %}
{% for slide in list_all_slider_objects %}
{{forloop.counter|add:"-1"}}
{% endfor%}
{% endif %}
{% endwith %}
其他回答
我只是把流行的答案做得更深入一些,让它更健壮。这允许您指定任何起点,例如0或1。它还使用了python的range特性,其中末尾少了一个,因此可以直接与列表长度一起使用。
@register.filter(name='range')
def filter_range(start, end):
return range(start, end)
然后在你的模板中只包括上面的模板标签文件,并使用以下:
{% load myapp_filters %}
{% for c in 1|range:6 %}
{{ c }}
{% endfor %}
现在你可以用1-6代替0-6或者硬编码。添加一个步骤将需要一个模板标签,这应该涵盖更多的用例,所以这是向前迈出的一步。
{% for i in range(10) %}
{{ i }}
{% endfor %}
你可以在views.py的上下文中传递range(n)而不是n。这将给你一个可迭代的列表。
context['range']= range(n)
然后你可以这样迭代你的模板:
{% for i in range %}
<!-- your code -->
{% endfor %}
{% for _ in ''|center:13 %}
{{ forloop.counter }}
{% endfor %}
显示1到20个数字:
{% for i in "x"|rjust:"20"|make_list %}
{{ forloop.counter }}
{% endfor %}
这也可以帮助你: (count_all_slider_objects来自视图)
{% for i in "x"|rjust:count_all_slider_objects %}
{{ forloop.counter }}
{% endfor %}
or
{% with counter=count_all_slider_objects %}
{% if list_all_slider_objects %}
{% for slide in list_all_slider_objects %}
{{forloop.counter|add:"-1"}}
{% endfor%}
{% endif %}
{% endwith %}