None, False and True
todos están disponibles en etiquetas de plantilla y filtros. None, False
, la cadena vacía ( '', "", """"""
) y las listas / tuplas vacías se evalúan False
cuando son evaluadas por if
, por lo que puede hacer fácilmente
{% if profile.user.first_name == None %}
{% if not profile.user.first_name %}
Una pista: @fabiocerqueira tiene razón, deja la lógica a los modelos, limita las plantillas para que sean la única capa de presentación y calcula cosas así en tu modelo. Un ejemplo:
# 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 }}
Espero que esto ayude :)