None, False and Truetodos están disponibles en etiquetas de plantilla y filtros. None, False, la cadena vacía ( '', "", """""") y las listas / tuplas vacías se evalúan Falsecuando 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 :)
                 
                
                
                 
{% if profile.user.first_name is None %}provoca un error de sintaxis en la plantilla de Django.default_if_nonefiltro en la plantilla?También puede utilizar otra plantilla incorporada
default_if_nonefuente
dateprimero. Si ocurre algún error, devolverá Ninguno. Entonces aplicadefault_if_none.isoperador: Nuevo en Django 1.10fuente
Mira el ayudante de yesno
P.ej:
fuente
{% if profile.user.first_name %}funciona (suponiendo que tampoco quieras aceptar'').ifen Python en golosinas generalesNone,False,'',[],{}, ... todo como falso.fuente
También puede utilizar el filtro de plantilla integrado
default:Si el valor se evalúa como Falso (por ejemplo, Ninguno, una cadena vacía, 0, Falso); se muestra el "-" predeterminado.
Documentación: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#default
fuente
Puedes probar esto:
De esta manera, esencialmente está verificando si el campo del formulario
first_nametiene algún valor asociado. Ver{{ field.value }}en Bucle sobre los campos del formulario en la Documentación de Django .Estoy usando Django 3.0.
fuente