如何减去 django 模板中的两个字段?

Posted

技术标签:

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

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

<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 模块的情况下做到这一点吗?

【问题讨论】:

【参考方案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 中也没有错。

希望这会有所帮助..

【讨论】:

以上是关于如何减去 django 模板中的两个字段?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 django 模板中的另一个字段中更改后禁用复选框?

在 Django 模板中减去 2 个整数 [重复]

Django模板,向模板标签发送两个参数?

html模板中的django外键表字段

如何将引导类添加到模板中的 Django CreateView 表单字段?

如何访问 django 模板中的 django ManyToManyField