如何使一个变量在jijna2默认为“”如果对象是None而不是这样做?
{% if p %}
{{ p.User['first_name']}}
{% else %}
NONE
{%endif %}
所以如果对象p是None,我想默认值p (first_name和last_name)为“”。
基本上
nvl(p.User[first_name'], "")
错误接收:
Error: jinja2.exceptions.UndefinedError
UndefinedError: 'None' has no attribute 'User'
我通常定义一个nvl函数,并把它放在全局变量和过滤器中。
def nvl(*args):
for item in args:
if item is not None:
return item
return None
app.jinja_env.globals['nvl'] = nvl
app.jinja_env.filters['nvl'] = nvl
模板中的用法:
<span>Welcome {{ nvl(person.nick, person.name, 'Anonymous') }}<span>
// or
<span>Welcome {{ person.nick | nvl(person.name, 'Anonymous') }}<span>
我通常定义一个nvl函数,并把它放在全局变量和过滤器中。
def nvl(*args):
for item in args:
if item is not None:
return item
return None
app.jinja_env.globals['nvl'] = nvl
app.jinja_env.filters['nvl'] = nvl
模板中的用法:
<span>Welcome {{ nvl(person.nick, person.name, 'Anonymous') }}<span>
// or
<span>Welcome {{ person.nick | nvl(person.name, 'Anonymous') }}<span>