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 None
no está permitido, eso significa que{% if variable != None %}
Es realmente tu única opción.
fuente
variable
siempre se evalúaTrue
cuando no es Ninguno,{% if variable != None %}
es equivalente a{% if variable %}
.None
uso 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