django自带的模板过滤器有很多,但是基础运算的只有加法,如果需要做减法的话只能用
{{value|add:-10}}
我在实际操作中需要对两个变量进行减法,经尝试
{{value1|add:-value2}}
这样写是无效的。于是我就准备自己定义一个过滤器来完成减法。
参考:官方文档
结构如下
polls/
__init__.py
models.py
templatetags/
__init__.py
poll_extras.py
views.py
在应用下添加一个templatetags文件夹,并在文件夹下添加__init__.py文件。然后新建poll_extras.py
from django import template
register = template.Library()
@register.filter(name='minus')
def minus(value1, value2):
try:
value = value2 - value1
except:
value = None
return value
定义了minus函数,并且注册。
在html文件开头,引用
{% load poll_extras %}
在需要使用过滤器的地方使用minus过滤器
<td>{{i.amount2|minus:amount1}}</td>
这样就可以计算amount2 减去 amount1 的值了
附:django还是更支持在views里完成计算的,这里只是提出个解决方法。