En convertissant depuis Django, j'ai l'habitude de faire quelque chose comme ceci:
{% if not var1 %} {% endif %}
et le faire fonctionner si je n'ai pas mis var1 dans le contexte. Jinja2 me donne une erreur indéfinie. Existe-t-il un moyen simple de dire {% if var1 == None %}
ou similaire?
{% if variable is not defined %}
pour tester l'inverse.{% if variable is defined and variable %}
vérifierait également le vide{% if variable is defined %}
est vrai si la variable estNone
.Puisque
not is None
n'est pas autorisé, cela signifie que{% if variable != None %}
est vraiment votre seule option.
la source
variable
est toujours évalué àTrue
quand il n'est pas None,{% if variable != None %}
équivaut à{% if variable %}
.None
utilisation des minusculesnone
{% if variable is not none %}
Vous pouvez également définir une variable dans un modèle jinja2 comme ceci:
Et puis vous pouvez l'utiliser comme ceci:
Sinon (si vous n'utilisez pas
{% set step = 1 %}
) le code supérieur lancerait:la source
Dans la configuration de l'environnement, nous l'avions fait
undefined = StrictUndefined
, ce qui empêchait les valeurs non définies d'être définies sur quoi que ce soit. Cela l'a corrigé:la source
Pensez à utiliser le filtre par défaut si c'est ce dont vous avez besoin. Par exemple:
ou utilisez plus de valeurs de repli avec une "codée en dur" à la fin comme:
la source
{% if variable is defined %}
fonctionne pour vérifier si quelque chose n'est pas défini.Vous pouvez vous en tirer en utilisant
{% if not var1 %}
si vous par défaut vos variables sur False, par exemplela source