Convertendo do Django, estou acostumado a fazer algo assim:
{% if not var1 %} {% endif %}
e fazê-lo funcionar se eu não colocasse var1 no contexto. Jinja2 me dá um erro indefinido. Existe uma maneira fácil de dizer {% if var1 == None %}
ou algo parecido?
{% if variable is not defined %}
para testar o inverso.{% if variable is defined and variable %}
também verificaria o vazio{% if variable is defined %}
é verdadeiro se a variável éNone
.Como
not is None
não é permitido, isso significa que{% if variable != None %}
é realmente sua única opção.
fonte
variable
é sempre avaliado comoTrue
quando não é Nenhum,{% if variable != None %}
é equivalente a{% if variable %}
.None
minúsculas,none
{% if variable is not none %}
Você também pode definir uma variável em um modelo jinja2 como este:
E então você pode usá-lo assim:
Caso contrário (se você não usasse
{% set step = 1 %}
), o código superior lançaria:fonte
Na configuração do ambiente, tínhamos o
undefined = StrictUndefined
que impedia que valores indefinidos fossem definidos para qualquer coisa. Isso corrigiu:fonte
Considere usar o filtro padrão, se for o que você precisa. Por exemplo:
ou use mais valores de fallback com um "codificado" no final, como:
fonte
{% if variable is defined %}
trabalha para verificar se algo está indefinido.Você pode se safar de usar
{% if not var1 %}
se padronizar suas variáveis como Falso, por exemplo.fonte