我有这样的代码:
{% if True %}
yo!
{% else %}
what?
{% endif %}当然,输出是what? (当然,因为我不会问这个问题,不是吗?)
True在模板世界中是不存在的吗?
发布于 2012-06-20 02:29:41
这很有趣,可能会被认为是一个bug,但我想这与模板标签的处理方式有关。if的第一个参数可能被视为上下文变量,所以它在上下文字典中查找True,当然,因为没有True键,所以什么也得不到。
发布于 2012-06-20 03:18:48
这是因为您的上下文中没有True对象,所以它会解析为错误。Django模板不是简单的Python包装器。您将不会拥有常见的globals()对象,包括True。
发布于 2012-06-20 02:29:39
相关ifequal标记的文档中写道:
只能将参数与模板变量或字符串进行比较。您不能检查Python对象是否相等,例如True或False。如果您需要测试某些东西是真是假,请使用If标记。
这可能表明True和False确实不存在于Django模板中,除非您使用自定义上下文处理器创建它们。
https://stackoverflow.com/questions/11107028
复制相似问题