Konwertując z Django, jestem przyzwyczajony do robienia czegoś takiego:
{% if not var1 %} {% endif %}
i sprawienie, żeby działało, jeśli nie umieściłem var1 w kontekście. Jinja2 daje mi nieokreślony błąd. Czy jest łatwy sposób powiedzieć {% if var1 == None %}
lub coś podobnego?
{% if variable is not defined %}
do przetestowania odwrotności.{% if variable is defined and variable %}
sprawdziłby również pustkę{% if variable is defined %}
ma wartość true, jeśli zmienną jestNone
.Ponieważ
not is None
nie jest to dozwolone, oznacza to, że{% if variable != None %}
to naprawdę twoja jedyna opcja.
źródło
variable
jest zawsze oceniane,True
gdy nie jest Brak,{% if variable != None %}
jest równoważne{% if variable %}
.None
użycie małych liternone
{% if variable is not none %}
Możesz również zdefiniować zmienną w szablonie jinja2 w następujący sposób:
A potem możesz użyć tego w następujący sposób:
W przeciwnym razie (jeśli nie użyjesz
{% set step = 1 %}
) górny kod wyrzuci:źródło
W konfiguracji środowiska mieliśmy taką opcję,
undefined = StrictUndefined
która uniemożliwiła ustawienie niezdefiniowanych wartości na cokolwiek. To naprawiło:źródło
Zastanów się nad użyciem domyślnego filtra, jeśli tego potrzebujesz. Na przykład:
lub użyj większej wartości zastępczej z „zakodowaną” jedną na końcu, np .:
źródło
{% if variable is defined %}
działa, aby sprawdzić, czy coś jest niezdefiniowane.Możesz uniknąć używania,
{% if not var1 %}
jeśli ustawisz domyślne zmienne na False, npźródło