【问题标题】: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 %}

    【讨论】:

    • 嘿,这太棒了。比我想象的要简单。
    猜你喜欢
    • 2013-11-05
    • 2014-10-23
    • 2017-01-16
    • 1970-01-01
    • 2015-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-11
    相关资源
    最近更新 更多