2013-06-19 48 views
2

這兩個命令在Django模板中有相同的功能嗎?在Django模板中,firstof還是default?

{{ foo|default:"bar" }} 

{% firstof foo "bar" %} 

如果以同樣的方式,這些工作,那麼是什麼是最好的做法是什麼?僅當我們有2個以上的參數時才使用firstof,或者總是使用firstof

+1

使用'firstof',它不會逃脫其輸出(這是在Django 1.6改變)時要小心輸出指定的默認值。 – Alasdair

回答

2

default可以認爲是firstof的專用案例。

firstof輸出第一變量不是False - 思or子句的 - 它的計算結果,直到對象中的任何一個計算結果爲True並返回。

它可用於比較多個值,而default用於特定對象。

default如果對象的計算結果爲False

+1

'firstof'不像'any'功能。 'any'返回True/False,'firstof'將返回第一個不合適的變量的值到False –