// EDITНеверный блок тег
Я использую стандартный язык шаблонов, а не дзиндзя. Стандартный язык шаблонов не поддерживает тег set
.
Как я могу объявить новую переменную с помощью jinja?
Вторая строка в следующем результате блока кода ошибки:
{% set msg_class = "" %}
Сообщение об ошибке:
Неверный блок тегов в строке 13: «установить», ожидаемый «Элиф», «еще» или "endif". Вы забыли зарегистрировать или загрузить этот тег?
Остальной код:
{% if msg %}
{% set msg_class = "" %}
{% if status == 1 %}
{% set msg_class = "alert alert-success" %}
{% elif status == 3 %}
{% set msg_class = "alert alert-danger" %}
{% elif status == 4 %}
{% set msg_class = "alert alert-warning" %}
{% else %}
{% set status = 2 %}
{% set msg_class = "alert alert-info" %}
{% endif %}
{% endif %}
Использование массива, как в следующем потоке, который я нашел, кажется, действительно некрасиво мне. Это единственное решение?
Can a Jinja variable's scope extend beyond in an inner block?
Вы уверены, что вы используете дзиндзя? Это ошибка со стандартного языка шаблонов Django. –
Я думал, что если я использую код в html-шаблонах, он называется jinja? Я ошибаюсь? https://en.wikipedia.org/wiki/Jinja_(template_engine) – user2871190
Да, вы ошибаетесь. Jinja - это отдельная система шаблонов, которая поддерживается Django, но не по умолчанию. Вы используете стандартный язык шаблонов, который хорошо документирован на сайте Django и не поддерживает тег 'set'. –