我在Google App Engine上有一个Django模板:
{% if not d.deposited}
{{ variable }}
{% else %}
{{ other_variable }}
{% endif %}
存放的变量可以是True,False或None。我试图确定值是否是这三个中的一个,但据我所知,False和None被视为相同的事物(意味着if的第一部分被触发两次)。有没有办法解决这个问题?
答案 0 :(得分:2)
在Python中,None
is in fact an object表示缺少值。要在Django 1.2或更高版本中专门检查它,请检查deposited
本身是否None
。
{% if d.deposited is None %}
{{ none_variable }}
{% elif not d.deposited %}
{{ false_variable }}
{% else %}
{{ other_variable }}
{% endif %}
不幸的是,在1.2之前,if
标记功能不是很强大,而是可以使用ifequal
和ifnotequal
。
{% ifequal d.deposited None %}
另外,如果有兴趣,请参阅the difference between is None
and == None
上的这篇文章。