Использование расширения Jinga2 Loop Control

Я хотел бы выйти из цикла for в шаблоне. Я понимаю, что это невозможно в DTL, но согласно документации это возможно при использовании Jinja2 (с расширением Loop Control) в качестве шаблонизатора. Поэтому я обновил свой settings.py, включив в него

{
    'BACKEND': 'django.template.backends.jinja2.Jinja2',
    'DIRS': [os.path.join(BASE_DIR, 'templates/jinja2')],
    'APP_DIRS': True,
    'OPTIONS': {
        'environment': 'project4.jinja2.environment'},
},

Я определяю среду Jinja в jinja2.py:

from jinja2 import Environment
from django.contrib.staticfiles.storage import staticfiles_storage
from django.urls import reverse

def environment(**options):
    env = Environment(**options, extensions=['jinja2.ext.loopcontrols'])
    env.globals.update({
      'static': staticfiles_storage.url,
      'url': reverse,
    })
  return env

В моем файле views.py указывается на файл шаблона jinja:

return render(request, "jinja2/index.html", {
    "pages": page_obj,
    "liked": liked_posts
})

Но когда я пытаюсь использовать оператор break в моем цикле, как например:

{% for like in liked %}
    {% if like.liked_post == page %}
        <span><button class="btn btn-secondary" id="unlike">Unlike</button></span>
        {% break %}
    {% else %}
        <span><button class="btn btn-secondary" id="unlike">Like</button></span>
    {% endif %}
{% endfor %}

Я получаю следующую ошибку:

Invalid block tag on line 30: 'break', expected 'elif', 'else' or 'endif'. Did you forget to register or load this tag?

Что я упускаю? Должно ли окружение Jinja2 быть создано в моем views.py?

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