我正在使用Django模板,我想检查布尔值,如果是真的则打印'粗体',如果是伪则打印'普通'。如果值为空或未定义,我想将其视为True。这是我目前正在使用的:
{{ something.boolean_val|yesno:"bold,plain,bold" }}
但是,如果未定义something.boolean
,则将其视为False,而不是None。我尝试添加|default_if_none
过滤器,但没有做任何事情。当我尝试|default
时,它也改变了False值。
深入研究文档,默认情况下,未定义的变量似乎设置为''
,将其视为False。我只想在这种特殊情况下将未定义的变量视为True(None也没关系),所以我不想摆弄TEMPLATE_STRING_IF_INVALID
。
有没有办法让这个处理未定义的变量为True?或者,有没有办法可以将''
与False区分开来?
答案 0 :(得分:1)
我不认为它是一个过滤器,但在模板语言逻辑中你可以使用'=='等于'==='或'是'在python中并且不匹配None或''与False相匹配使用'not'的方式。
{% if something.boolean_val == False %}plain{% else %}bold{% endif %}