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

时间:2015-03-06 04:44:58

标签: python jinja2

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

因此,我尝试使用以下代码来显示TrueFalse状态,并希望在None时显示任何内容。

            {% if valid %}
            VALID
            {% elif not valid %}
            NOT VALID
            {%endif %}

但我现在的问题是,当validNone时,它会显示'NOT VALID' 我怎么能改变它而不是显示任何东西。

1 个答案:

答案 0 :(得分:4)

if valid is none。请注意,Jinja中的is与Python的is不同。在这种情况下,is会调用名为none的Jinja过滤器。 Here is the list of built-in filters.

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''