{% if None == False %}
abc
{% endif %}
上面的代码,奇怪的是我的模板显示为abc
。有什么解释吗?
答案 0 :(得分:3)
怪异。在常规python中,
if None == False:
# this will not run
print "abc"
提交Django的错误。 :)
答案 1 :(得分:3)
Jason Culverhouse在我提出的另一个类似question中提供了答案。
False和None被视为变量,而不是常量。如果在上下文字典中找不到变量,则解析为None。
答案 2 :(得分:1)
这就是Python解析“真相”以便在不同类型之间进行比较的方式。
查看文档。 “无”被认为是假的。
http://docs.python.org/library/stdtypes.html#truth-value-testing
编辑:如下所示,python控制台不会确认此行为,所以,我也很惊讶。 -1给我!
答案 3 :(得分:0)
现在看来您必须按照此post
中的建议创建自己的模板过滤器答案 4 :(得分:0)
或者,您可以if not None
。