None, False and True
todos estão disponíveis em tags e filtros de modelo. None, False
, a string vazia ( '', "", """"""
) e as listas / tuplas vazias são avaliadas False
quando avaliadas por if
, então você pode fazer facilmente
{% if profile.user.first_name == None %}
{% if not profile.user.first_name %}
Uma dica: @fabiocerqueira tem razão, deixe a lógica para os modelos, limite os templates para serem a única camada de apresentação e calcule coisas assim no seu modelo. Um exemplo:
# 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 isto ajude :)