2012-02-05 81 views
0

如果實際變量爲None,我想將變量defaults傳遞給我的模板。如何在模板中設置變量默認值?

這裏是我的意思是:

{{ value|default:"Default" }} ## General case. 

我怎能取代"Default"我的自定義變量?

是否可以用另一個變量替換它?

喜歡的東西:

{{ value|default:{{value2}} }}  ## OR Something similar 

回答

3

你可以把另一個變量,而不是常量字符串是這樣的:

{{ value|default:backup_var }} 

我剛剛測試了這一點,它工作正常。這裏是我的模板片:

<i>{{ my_var|default:user.username}}</i> 

我沒有my_var定義,所以它的計算結果爲:

<i>admin</i> 

綜上,Django的解析器接受不是唯一不變的值,而且還變量作爲參數傳遞給過濾器也。但不是表達式(我無法弄清楚如何使我的表達式解析,但如果你需要它,你可能會在複雜情況下使用{% with var=expr %} ... {% endwith %}

+0

嘿,這太棒了。比我想象的更簡單。 – 2012-02-05 13:49:43