Al convertirme de Django, estoy acostumbrado a hacer algo como esto:
{% if not var1 %} {% endif %}
y hacer que funcione si no puse var1 en el contexto. Jinja2 me da un error indefinido. ¿Hay una manera fácil de decir {% if var1 == None %}o similar?

{% if variable is not defined %}para probar el inverso.{% if variable is defined and variable %}también verificaría el vacío{% if variable is defined %}es cierto si la variable esNone.Como
not is Noneno está permitido, eso significa que{% if variable != None %}Es realmente tu única opción.
fuente
variablesiempre se evalúaTruecuando no es Ninguno,{% if variable != None %}es equivalente a{% if variable %}.Noneuso de minúsculasnone{% if variable is not none %}También podría definir una variable en una plantilla jinja2 como esta:
Y luego puedes usarlo así:
De lo contrario (si no usaría
{% set step = 1 %}), el código superior arrojaría:fuente
En la configuración del entorno, tuvimos
undefined = StrictUndefined, lo que evitó que los valores indefinidos se establecieran en cualquier cosa. Esto lo solucionó:fuente
Considere usar un filtro predeterminado si es lo que necesita. Por ejemplo:
o use más valores de respaldo con uno "codificado" al final como:
fuente
{% if variable is defined %}funciona para verificar si algo no está definido.Puede salirse con la suya
{% if not var1 %}si predetermina sus variables a False, por ejemplofuente