Wenn ich von Django konvertiere, bin ich es gewohnt, so etwas zu tun:
{% if not var1 %} {% endif %}
und es funktionieren zu lassen, wenn ich var1 nicht in den Kontext gestellt habe. Jinja2 gibt mir einen undefinierten Fehler. Gibt es eine einfache Möglichkeit zu sagen {% if var1 == None %}
oder ähnliches?
{% if variable is not defined %}
die Umkehrung testen.{% if variable is defined and variable %}
würde auch auf Leere prüfen{% if variable is defined %}
ist wahr, wenn die Variable istNone
.Da
not is None
ist das nicht erlaubt, heißt das{% if variable != None %}
ist wirklich deine einzige Option.
quelle
variable
immer ausgewertet wird,True
wenn nicht Keine,{% if variable != None %}
entspricht{% if variable %}
.None
Kleinbuchstabennone
{% if variable is not none %}
Sie können eine Variable auch in einer jinja2-Vorlage wie folgt definieren:
Und dann können Sie es so verwenden:
Andernfalls (wenn Sie nicht verwenden würden
{% set step = 1 %}
) würde der obere Code werfen:quelle
Im Umgebungs-Setup hatten wir
undefined = StrictUndefined
, was verhinderte, dass undefinierte Werte auf irgendetwas gesetzt wurden. Dies hat es behoben:quelle
Erwägen Sie die Verwendung des Standardfilters, wenn dies erforderlich ist. Beispielsweise:
oder verwenden Sie mehr Fallback-Werte mit "hardcoded" am Ende wie:
quelle
{% if variable is defined %}
funktioniert, um zu überprüfen, ob etwas undefiniert ist.Sie können mit der Verwendung davonkommen,
{% if not var1 %}
wenn Sie Ihre Variablen standardmäßig auf False setzen, zquelle