使用jinja代码中for循环的索引打印列表中的项目


{% for index in length %}
{{index}}
<img src={{image_url.index}} width="200" height="250">
{% endfor %}

length包含从0到38的数字列表,即[0,1,2,….38]image_url包含我想要在网页中显示的图像url列表。{{index}}代码运行正常,并显示从0到38的索引号。但是,当我尝试使用{{image_url.index}}显示图像时,不会显示任何图像。有解决方案吗?

Django不会将您的index转换为这个值来获得相应的image_url。

为什么不在image_url上循环?

{% for url in image_url %}
{{forloop.counter0}}
<img src={{url}} width="200" height="250">
{% endfor %}

否则,您必须创建一个自定义筛选器(https://docs.djangoproject.com/en/4.1/ref/templates/builtins/):

# templatetags/extras.py
from django import template
register = template.Library()
@register.filter
def get_item(array, key):
return array[key]
# in template
{% load extras %}
{{image_url|get_item:index}}

最新更新