我正在尝试在模板中使用for循环但是我收到错误。
这是jinja:
{% for i in range(1,10) %}
<h2>{{i}}</h2>
{% endfor %}
这是错误:
django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: '(1,10)' from 'range(1,10)'
我有点困惑。这表明range
存在问题,甚至不存在,但我已经看到它建议作为其他Stack Overflow帖子的解决方案,例如:
How to simulate while loop in Jinja2
jinja / django中是否存在范围?如果是,为什么这不起作用,如果不是,最好的选择是什么?
答案 0 :(得分:1)
我认为没有正式的解决方案。但是有一些解决方法。
这样的东西可以在模板中使用,“a”就是你要循环的数字。
{% for x in "aa" %}
...
{% endfor %}
另一个解决方案是创建一个自定义模板过滤器,您可以给它一个数字,它将返回:
range(x)
我能想到的最后一个选择是:
render_response('template.html', {'range': range(10))
然后执行:
{% for x in range %}
...
{% endfor %}
答案 1 :(得分:0)
在 Python 中,可以使用 for 循环迭代字符串。
例如:
for ch in '0123456789':
print(ch)
或者,在 Django 中:
{% for ch in '0123456789' %}
<h2>{{ch}}</h2>
{% endfor %}