Итерация по списку в шаблоне django
Есть фотогалерея, которая выводится из каталога циклом следующим образом (весь цикл не привожу, он массивный и суть не в нём):
<a href="{{ MEDIA_URL }}images/thumbs/{{ image }}">
<img src="{{ MEDIA_URL }}images/{{ image }}" alt="{{ alt_text.0 }}">
Во views.py
def photo(request):
path = settings.MEDIA_ROOT
img_list = os.listdir(path + '/images/thumbs')
i = 0
alt_text = ('первое фото', 'второе фото', 'третье фото')
context = {'images': img_list,
'alt_text': alt_text,
'i': i}
return render(request, "photo/photo.html", context)
То есть я создал список alt_text для применении ALT к каждой фотографии.
Если в шаблоне я указываю alt="{{ alt_text.0 }}
- то ALT текст присваивается к фотографии, но у меня их много, поэтому пытался через переменную 'i', и в конце цикла ставил i += 1, но такой фокус не работает. То есть код alt="{{ alt_text.i }}
не работает.
Помогите пожалуйста с идеей, тапками прошу не кидать, все с чего-то начинали. Цель - применить следующий элемент списка к ALT тексту следующего изображения, пока изображения есть. Спасибо.
просто добавьте поле alt в модель.
class Image(models.Model):
.......
ALT_CHOICES = (
('1', 'alt1'),
('2', 'alt2'),
)
alt = models.CharField(max_length=200)
или через выбор из допустимых значений
class Image(models.Model):
.......
ALT_CHOICES = (
('1', 'alt1'),
('2', 'alt2'),
)
alt = models.CharField(max_length=1, choices=GENDER_CHOICES)