django 模板 - 如果 True 返回 false



我有这个代码:

{% if True %}
    yo!
{% else %}
    what?
{% endif %}

当然,输出是what?(当然,因为我不会问这个问题,对吗?

模板世界中不存在True吗?

这有点有趣,可能被认为是一个错误,但我想这与模板标签的处理方式有关。要if的第一个参数可能被视为上下文变量,因此它在上下文字典中查找True,当然,由于没有True键,因此一无所获。

发生这种情况是因为您的上下文中没有 True 对象,因此它会解析为虚假。Django 模板不是简单的 Python 包装器。您将没有通常的globals()对象,True包括在内。

相关 ifequal 标签的文档说:

只能将参数与模板变量进行比较或 字符串。您无法检查与 Python 对象的相等性,例如 对或错。如果您需要测试某些内容是真是假,请使用 改为 if 标记。

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

相关内容

  • 没有找到相关文章

最新更新