【问题标题】:How to subtract two fields in django templates?如何减去 django 模板中的两个字段?
【发布时间】:2017-09-03 01:37:29
【问题描述】:

在标记为与 SO 上的许多其他问题重复之前,请阅读。我有三个字段,Credit AvailableCredit LimitCredit Balance。我正在从我的数据库中获取Credit LimitCredit Balance 的值。要显示Credit Available,我想做Credit Limit-Credit Balance。我尝试从 stackoverflow 上的其他答案中执行此操作,但它们不起作用

<tr>
    <td style="text-align:center">{{ credit.credit_limit|add:"-{{credit.credit_balance}}" }}</td>
    <td align="center">{{ credit.credit_limit}}</td>
    <td align="center">{{ credit.credit_balance }}</td>
</tr>

我可以在不编写新模板标签或使用 mathfilter 模块的情况下做到这一点吗?

【问题讨论】:

    标签: python django


    【解决方案1】:

    将限制添加到余额的正确语法是

    {{ credit.credit_limit|add:credit.credit_balance }}
    

    根据https://docs.djangoproject.com/en/1.10/ref/templates/builtins/#add。 不幸的是,在变量前面加上减号不会使其变为负数。

    您可以使用custom template filter,这相当简单。它可能看起来像这样:

    @register.filter(name='subtract')
    def subtract(value, arg):
        return value - arg
    

    然后在您的模板中(加载后)它将是:

    {{ credit.credit_limit|subtract:credit.credit_balance }}
    

    【讨论】:

      【解决方案2】:

      我试图在这里解释另一种方法:

      Variable subtraction in django templates

      我相信这种方法也可以应用于您的问题。

      我很确定还是使用自定义模板助手会更好.. 将计算的值添加到您的视图/模型 imo 中也没有错。

      希望这会有所帮助..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-03
        • 1970-01-01
        • 2020-10-06
        • 1970-01-01
        • 2014-01-26
        相关资源
        最近更新 更多