cbu*_*800 4 html django django-templates jinja2
我试图在我的模板中使用 for 循环,但出现错误。
这是金贾:
{% for i in range(1,10) %}
<h2>{{i}}</h2>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
这是错误:
django.template.exceptions.TemplateSyntaxError: Could not parse the remainder: '(1,10)' from 'range(1,10)'
Run Code Online (Sandbox Code Playgroud)
我有点困惑。这表明它有问题,range甚至它不存在,但我在其他 Stack Overflow 帖子中看到它被建议作为解决方案,例如这个:
如何在 Jinja2 中模拟 while 循环
jinja/django 中是否存在范围?如果是,为什么这不起作用,如果不是,最好的选择是什么?
小智 5
我不认为有一个官方的解决方案。但是,有一些解决方法。
这样的东西可以在模板中工作,“a”将是您想要循环的数字。
{% for x in "aa" %}
...
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
另一种解决方案是创建一个自定义模板过滤器,您可以为其提供一个数字,它会返回:
range(x)
Run Code Online (Sandbox Code Playgroud)
我能想到的最后一个选择是:
render_response('template.html', {'range': range(10))
Run Code Online (Sandbox Code Playgroud)
然后做:
{% for x in range %}
...
{% endfor %}
Run Code Online (Sandbox Code Playgroud)