如何减去 django 模板中的两个字段?
Posted
技术标签:
【中文标题】如何减去 django 模板中的两个字段?【英文标题】:How to subtract two fields in django templates? 【发布时间】:2017-09-03 01:37:29 【问题描述】:在标记为与 SO 上的许多其他问题重复之前,请阅读。我有三个字段,Credit Available
、Credit Limit
和 Credit Balance
。我正在从我的数据库中获取Credit Limit
和Credit 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 模板中的另一个字段中更改后禁用复选框?