我尝试在模板中使用for循环,但出现错误。
下面是忍者:
{% for i in range(1,10) %}
<h2>{{i}}</h2>
{% endfor %}
下面是错误:
django.template.exceptions.TemplateSyntaxError:无法解析其余部分:“(1,10)”来自“范围(1,10)”
我有点困惑,这表明range
有问题,甚至它不存在,但我在其他Stack Overflow帖子中看到它作为解决方案的建议,比如这篇:How to simulate while loop in Jinja2
在Jinja/Django中是否存在射程?如果是,为什么不起作用,如果不起作用,最好的选择是什么?
3条答案
按热度按时间v09wglhw1#
我不认为有一个官方的解决方案,但有一些变通办法。
类似这样的东西可以在模板中工作,“a”是你想要循环的数字。
另一个解决方案是创建一个自定义模板过滤器,您可以给予它一个数字,它将返回:
我能想到的最后一个选择是:
然后执行以下操作:
qvk1mo1f2#
首先,django模板中没有range标签或函数。
答案-将列表传递给呈现函数。
这就是你的问题
在www.example.com中将range函数作为生成器传递,以替换它views.py
然后,在模板中,您可以按以下方式使用:
p3rjfoxz3#
在Python中,字符串可以使用for循环进行迭代。
例如:
或者,在Django中: