之間的區別我對谷歌App Engine的Django模板:Django模板(App引擎) - 無與假
{% if not d.deposited}
{{ variable }}
{% else %}
{{ other_variable }}
{% endif %}
沉積可以是真,假或無變量。我試圖確定這個值是否是這三個值中的一個,但據我所知,False和None被視爲相同的東西(意味着if的第一部分被觸發兩次)。有沒有辦法解決?
之間的區別我對谷歌App Engine的Django模板:Django模板(App引擎) - 無與假
{% if not d.deposited}
{{ variable }}
{% else %}
{{ other_variable }}
{% endif %}
沉積可以是真,假或無變量。我試圖確定這個值是否是這三個值中的一個,但據我所知,False和None被視爲相同的東西(意味着if的第一部分被觸發兩次)。有沒有辦法解決?
在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
上的這篇文章。
我不相信'{%if foo是None%}'語法在Django 0.96中可用,它是應用程序引擎上python 2.5的默認值。 – geoffspear 2012-02-10 00:29:16
確認它不起作用。 'TemplateSyntaxError:'if'聲明格式不正確' – rhefner1 2012-02-10 18:45:41
@ rhefner1,@Wooble:如果{%if foo == None%}'? – voithos 2012-02-10 20:35:44
對不起,我犯了一個錯誤 - 我的意思是說False和None都被視爲同一件事。 – rhefner1 2012-02-10 18:44:13