我如何写一个数字循环在Django模板?我的意思是
for i = 1 to n
我如何写一个数字循环在Django模板?我的意思是
for i = 1 to n
当前回答
如果数字来自一个模型,我发现这是一个很好的模型补丁:
def iterableQuantity(self):
return range(self.quantity)
其他回答
你可以使用: {% with " |center: I as range %}
你应该在模板中使用“slice”,一个这样的例子:
在views.py
contexts = {
'ALL_STORES': Store.objects.all(),
}
return render_to_response('store_list.html', contexts, RequestContext(request, processors=[custom_processor]))
在store_list.html:
<ul>
{% for store in ALL_STORES|slice:":10" %}
<li class="store_item">{{ store.name }}</li>
{% endfor %}
</ul>
{% with ''|center:n as range %}
{% for _ in range %}
{{ forloop.counter }}
{% endfor %}
{% endwith %}
这需要一个范围函数。Django的一个特性票被提出了(https://code.djangoproject.com/ticket/13088),但关闭为“不会修复”以下的评论。
我对这个想法的印象是,它试图导致在模板中编程。如果您有一个需要呈现的选项列表,那么它们应该在视图中计算,而不是在模板中。如果这就像一个值范围那么简单,那就这样吧。
他们有一个很好的观点——模板应该是视图的非常简单的表示。您应该在视图中创建有限的必需数据,并将其传递给上下文中的模板。
也许像这样?
{% for i in "x"|rjust:"100" %}
...
{% endfor %}