默认布尔值为Django模板中的非假名

时间:2014-02-21 20:17:08

标签: django django-templates

我正在使用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区分开来?

1 个答案:

答案 0 :(得分:1)

我不认为它是一个过滤器,但在模板语言逻辑中你可以使用'=='等于'==='或'是'在python中并且不匹配None或''与False相匹配使用'not'的方式。

{% if something.boolean_val == False %}plain{% else %}bold{% endif %}