None, False and True
Alle sind in Vorlagen-Tags und Filtern verfügbar. None, False
, die leere Zeichenfolge ( '', "", """"""
) und leere Listen / Tupel werden alle ausgewertet, False
wenn sie von ausgewertet werden if
, sodass Sie dies problemlos tun können
{% if profile.user.first_name == None %}
{% if not profile.user.first_name %}
Ein Hinweis: @fabiocerqueira ist richtig, überlassen Sie die Logik den Modellen, beschränken Sie Vorlagen auf die einzige Präsentationsebene und berechnen Sie solche Dinge in Ihrem Modell. Ein Beispiel:
# someapp/models.py
class UserProfile(models.Model):
user = models.OneToOneField('auth.User')
# other fields
def get_full_name(self):
if not self.user.first_name:
return
return ' '.join([self.user.first_name, self.user.last_name])
# template
{{ user.get_profile.get_full_name }}
Hoffe das hilft :)
{% if profile.user.first_name is None %}
verursacht Syntaxfehler in der Django-Vorlage.default_if_none
Filter in der Vorlage verwenden?Sie können auch eine andere integrierte Vorlage verwenden
default_if_none
quelle
date
zuerst. Wenn ein Fehler auftritt, wird None zurückgegeben. Dann bewerben Sie sichdefault_if_none
.is
Betreiber: Neu in Django 1.10quelle
Schau dir den Yesno- Helfer an
Z.B:
quelle
{% if profile.user.first_name %}
funktioniert (vorausgesetzt, Sie möchten auch nicht akzeptieren''
).if
in Python im Allgemeinen behandeltNone
,False
,''
,[]
,{}
, ... alle als falsch.quelle
Sie können auch den integrierten Vorlagenfilter verwenden
default
:Wenn der Wert False ergibt (z. B. None, eine leere Zeichenfolge, 0, False); Das Standard "-" wird angezeigt.
Dokumentation: https://docs.djangoproject.com/de/dev/ref/templates/builtins/#default
quelle
Sie könnten dies versuchen:
Auf diese Weise überprüfen Sie im Wesentlichen, ob dem Formularfeld
first_name
ein Wert zugeordnet ist. Siehe{{ field.value }}
in Looping über die Felder des Formulars in Django Dokumentation .Ich benutze Django 3.0.
quelle