Печать элементов из списка с использованием индекса цикла for в коде jinja

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

length содержит список чисел от 0 до 38 i.e. [0,1,2,......38]. image_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}}

Вернуться на верх