我如何写一个数字循环在Django模板?我的意思是

for i = 1 to n

当前回答

你可以通过:

{'n':范围(n)}

使用模板:

{% for I in n %} ... {% endfor %}

其他回答

如果数字来自一个模型,我发现这是一个很好的模型补丁:

def iterableQuantity(self):
    return range(self.quantity)

你不传递n本身,而是传递range(n)[包含从0到n-1的整数列表],从你的视图到你的模板,在后者中,你在range %}中为i执行{%(如果你绝对坚持以1为基础,而不是正常的以0为基础的索引,你可以使用forloop。循环体中的计数器;-)。

你可以使用: {% with " |center: I as range %}

的绑定

{'n' : range(n) }

到模板,然后做

{% for i in n %}
...
{% endfor %}

注意,您将得到基于0的行为(0,1,…)n - 1)。

(为兼容Python3而更新)

我在这个问题上很努力,我找到了最好的答案: (来自如何在django模板中循环7次)

你甚至可以访问idx!

views.py:

context['loop_times'] = range(1, 8)

html:

{% for i in loop_times %}
        <option value={{ i }}>{{ i }}</option>
{% endfor %}