2012-02-05 146 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