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 %}
Вернуться на верх