django模板-如果为True,则返回false?

django模板-如果为True,则返回false?,django,django-templates,Django,Django Templates,我有以下代码: {% if True %} yo! {% else %} what? {% endif %} 当然,输出是,什么?(当然,因为我不会问这个问题,不是吗?) 模板世界中不存在True吗?相关ifequal标记的文档说明: 只能将参数与模板变量或参数进行比较 串。不能检查与Python对象(例如 对或错。如果您需要测试某事是否正确,请使用 而是使用if标记 这可能表明Django模板中确实不存在True和False,除非您使用自定义上下文处理器创建它们。这有点滑稽,

我有以下代码:

{% if True %}
    yo!
{% else %}
    what?
{% endif %}
当然,输出是,
什么?
(当然,因为我不会问这个问题,不是吗?)


模板世界中不存在
True
吗?

相关
ifequal
标记的文档说明:

只能将参数与模板变量或参数进行比较 串。不能检查与Python对象(例如 对或错。如果您需要测试某事是否正确,请使用 而是使用if标记


这可能表明Django模板中确实不存在True和False,除非您使用自定义上下文处理器创建它们。

这有点滑稽,可能被认为是一个bug,但我想这与模板标记的处理方式有关。
if
的第一个参数很可能被视为上下文变量,因此它在上下文dict中查找
True
,当然,由于没有
True
键,所以什么也得不到。

发生这种情况的原因是上下文中没有
True
对象,因此它会变成错误。Django模板不是简单的Python包装器。您将不会包含通常的
globals()
对象,
True

我从来没有意识到这种情况。您是否有依赖于“if True”的用例?或者只是你遇到的一些事情?只是我遇到的一些事情-我自己并没有太多的使用if-True。。。