Variable de plantilla Jinja2 si ningún objeto establece un valor predeterminado
¿Cómo hacer que una variable en Jijna2 tenga el valor predeterminado "" si el objeto está None
en lugar de hacer algo como esto?
{% if p %}
{{ p.User['first_name']}}
{% else %}
NONE
{%endif %}
Entonces, si el objeto p
es None
. Quiero que los valores predeterminados de p
(first_name y last_name) sean ""
. Básicamente:
nvl(p.User[first_name'], "")
Error al recibir:
Error: jinja2.exceptions.UndefinidoError
UndefinidoError: 'Ninguno' no tiene el atributo 'Usuario'
Aceptado
Utilice la none
prueba (¡no debe confundirse con None
el objeto de Python !):
{% if p is not none %}
{{ p.User['first_name'] }}
{% else %}
NONE
{% endif %}
o:
{{ p.User['first_name'] if p is not none else 'NONE' }}
o si necesitas una cadena vacía:
{{ p.User['first_name'] if p is not none }}
{{p.User['first_name'] or 'My default string'}}
Según los documentos , puedes hacer:
{{ p|d('', true) }}
Causa None
conversiones False
en un contexto booleano.