Van*_*Van 1 django-templates jinja2
我正在构建一个 django 模板来根据从视图传递的参数来复制图像;然后,模板在 for 循环中使用 Jinja2 来复制图像。
但是,我只能通过传递我在视图中创建的列表来使其工作。如果我尝试使用 jinja 范围,则会收到错误(“无法解析其余部分:...”)。
阅读此链接,我发誓我使用了正确的语法。
模板
{% for i in range(variable) %}
<img src=...>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我检查了我传入的变量;它是 int 类型。哎呀,我什至尝试摆脱变量(用于测试)并尝试使用硬编码数字:
{% for i in range(5) %}
<img src=...>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
无法解析余数:“range(5)”中的“(5)”
如果我将参数字典中的列表传递给模板(并使用该列表代替范围语句),它就会起作用;无论我想要多少次,图像都会重复。
Soooo....根据Franndy的评论,Django不会自动支持这一点,并按照他们的链接(导致此链接),我找到了如何编写自己的过滤器。
内部views.py:
from django.template.defaulttags import register
@register.filter
def get_range(value):
return range(value)
Run Code Online (Sandbox Code Playgroud)
然后,在模板内部:
{% for i in variable|get_range %}
<img src=...>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4687 次 |
| 最近记录: |