None, False and True
sont tous disponibles dans les balises et les filtres des modèles. None, False
la chaîne vide ( '', "", """"""
) et les listes/tuples vides sont tous évalués à False
lorsqu'il est évalué par if
donc vous pouvez facilement faire
{% if profile.user.first_name == None %}
{% if not profile.user.first_name %}
Un indice : @fabiocerqueira a raison, laissez la logique aux modèles, limitez les modèles à la seule couche de présentation et calculez ce genre de choses dans votre modèle. Un exemple :
# 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 }}
J'espère que cela vous aidera :)