Jinja2模板variables,如果None对象设置了默认值
如何使jijna2中的variables默认为“”如果对象是None而不是做这样的事情?
{% if p %} {{ p.User['first_name']}} {% else %} NONE {%endif %}
所以如果对象p是None,我想把p(first_name和last_name)的值默认为“”。 基本上nvl(p.User [first_name'],“”)
错误接收:错误:jinja2.exceptions.UndefinedError UndefinedError:'None'没有属性'User'
使用none
内build函数( http://jinja.pocoo.org/docs/templates/#none ):
{% if p is not none %} {{ p.User['first_name'] }} {% else %} NONE {%endif %}
要么
{{ p.User['first_name'] if p != None else 'NONE' }}
或者如果你需要一个空string:
{{ p.User['first_name'] if p != None }}
{{p.User['first_name'] or 'My default string'}}
根据文档,你可以做:
{{ p|default('', true) }}
原因None
在布尔上下文中转换为False
。
除了其他答案之外,如果variables是None,那么可以写如下其他的东西:
{{ variable or '' }}
遵循这个文档你可以这样做:
{{ p.User['first_name']|default('NONE') }}
{{(p和p.User和p.User ['first_name'])或“default_value”}}