Jinja2: Проверка Существования и Значения Переменной

В Jinja2-темплейтах является хорошей практикой заранее проверять существует ли переменная и какое у нее значение.

Существует несколько полезных проверок, которые вы можете сделать с помощью встроенных в Jinja2 тестов и фильтров.

В этой статье я покажу, как проверить, существует ли переменная, является ли она пустой или она установлена в значение True.

Я также приведу два примера того, как можно объединять эти проверки.

Проверка Переменной в Jinja2

Проверить существует ли (определена ли) переменная:

{% if variable is defined %}
    variable is defined
{% else %}
    variable is not defined
{% endif %}

Проверить является ли пустой переменная:

{% if variable|length %}
    variable is not empty
{% else %}
    variable is empty
{% endif %}

Проверить установлена ли в значение true переменная:

{% if variable sameas true %}
    variable is true
{% else %}
    variable is not true
{% endif %}

Проверить что переменная существует и не является пустой:

{% if variable is defined and variable|length %}
    variable is defined and not empty
{% else %}
    variable is not defined or empty
{% endif %}

Проверить что переменная существует и установлена в значение true:

{% if variable is defined and variable is sameas true %}
    variable is defined and true
{% else %}
    variable is not defined or not set to true
{% endif %}