【问题标题】:How to have variable defaults in templates?如何在模板中设置变量默认值?
【发布时间】:2012-02-27 07:05:53
【问题描述】:
如果实际变量是None,我想将变量defaults 传递给我的模板。
这就是我的意思:
{{ value|default:"Default" }} ## General case.
如何将"Default" 替换为我的自定义变量?
是否可以用另一个变量替换它?
类似:
{{ value|default:{{value2}} }} ## OR Something similar
【问题讨论】:
标签:
python
django
templates
django-templates
【解决方案1】:
你可以像这样放置另一个变量而不是常量字符串:
{{ value|default:backup_var }}
我刚刚测试过,它工作正常。这是我的模板:
<i>{{ my_var|default:user.username}}</i>
我没有定义my_var,所以它的计算结果为:
<i>admin</i>
总结一下,django 解析器不仅接受常量值,还接受变量作为过滤器的参数。但不是表达式(我不知道如何解析我的表达式。但如果你需要它,你也可以在复杂的情况下使用{% with var=expr %} ... {% endwith %})