Jinja 2模板:我如何在if语句中检查布尔值是否为False或None

mut*_*han 6 python jinja2

所以我想在jinja2模板中显示状态是True,False还是None.当然我使用布尔值,因为我有三个我需要的状态.

所以我尝试了以下代码来显示TrueFalse状态,并希望在它出现时不显示任何内容None.

            {% if valid %}
            VALID
            {% elif not valid %}
            NOT VALID
            {%endif %}
Run Code Online (Sandbox Code Playgroud)

但我的问题是现在,当validNone它显示'NOT VALID' 我怎样才能改变,要深藏不露来代替.

jd.*_*jd. 5

if valid is none。请注意,isJinja中的内容与Python中的不同is。在这种情况下,is调用名为的Jinja过滤器none这是内置过滤器的列表。

jinja2.Template('{% if a is none %}None{% endif %}').render(a=None)
u'None'
jinja2.Template('{% if a is none %}None{% endif %}').render(a=False)
u''
Run Code Online (Sandbox Code Playgroud)