Django Templates Синтаксическая ошибка для If (Не удалось разобрать остаток)
Почему это не работает в Django?
{% for img in image_list %}
{% if img != image_list[-1] %}
<img src="{% get_media_prefix %}{{ img.image }}" class="img-fluid rounded" alt="Recipe Image Secondary">
<br>
{% endif %}
{% endfor %}
Simple Python (работает):
for img in image_list:
if img != (image_list[-1]):
print(img)
{% if img != image_list[-1] %}
выбрасывает ошибку TemplateSyntaxError Could not parse the remainder: '[-1]' from 'image_list[-1]'
Вы можете работать с |last
фильтром шаблона [Django-doc] для получения последнего элемента последовательности:
{% for img in image_list %} {% if img != image_list|last %} <img src="{{ img.image.url }}" class="img-fluid rounded" alt="Recipe Image Secondary"> <br> {% endif %} {% endfor %}
или в данном случае работать с forloop.last
[Django-doc]:
{% for img in image_list %} {% if not forloop.last %} <img src="{{ img.image.url }}" class="img-fluid rounded" alt="Recipe Image Secondary"> <br> {% endif %} {% endfor %}
{% for img in image_list %}
{% if not forloop.last %}
<img src="{% get_media_prefix %}{{ img.image }}" class="img-fluid rounded" alt="Recipe Image Secondary">
<br><br>
{% else %}
<img src="{% get_media_prefix %}{{ img.image }}" class="img-fluid rounded" alt="Recipe Image Secondary">
{% endif %}
{% endfor %}