在标记为与SO上的许多其他问题重复之前,请阅读。我有三个字段Credit Available
,Credit Limit
和Credit Balance
。我从我的数据库中获取Credit Limit
和Credit 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模块的情况下执行此操作吗?
答案 0 :(得分: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 }}
答案 1 :(得分:0)
我试图在这里解释的是另一种方式:
Variable subtraction in django templates
我确定这种方法也可以应用于您的问题。
我很确定无论如何还是要使用自定义模板帮助器还是更好。 将计算出的值添加到视图/模型imo中也没错。
希望这会有所帮助。