我如何写一个数字循环在Django模板?我的意思是
for i = 1 to n
我如何写一个数字循环在Django模板?我的意思是
for i = 1 to n
当前回答
的绑定
{'n' : range(n) }
到模板,然后做
{% for i in n %}
...
{% endfor %}
注意,您将得到基于0的行为(0,1,…)n - 1)。
(为兼容Python3而更新)
其他回答
我使用了一种简单的技术,可以很好地处理没有特殊标记和附加上下文的小情况。有时这很有用
{% for i in '0123456789'|make_list %}
{{ forloop.counter }}
{% endfor %}
如果数字来自一个模型,我发现这是一个很好的模型补丁:
def iterableQuantity(self):
return range(self.quantity)
你不传递n本身,而是传递range(n)[包含从0到n-1的整数列表],从你的视图到你的模板,在后者中,你在range %}中为i执行{%(如果你绝对坚持以1为基础,而不是正常的以0为基础的索引,你可以使用forloop。循环体中的计数器;-)。
你可以通过:
{'n':范围(n)}
使用模板:
{% for I in n %} ... {% endfor %}
我对这个问题的看法,我认为是最蟒蛇的。在你的apps 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 %}