我注意到内置add
过滤器,但我找不到divide
。
我是Django的新手,不确定是否有这样的过滤器。
答案 0 :(得分:58)
没有它。但如果你是一个小黑客......
http://slacy.com/blog/2010/07/using-djangos-widthratio-template-tag-for-multiplication-division/
计算A * B:{%widthratio A 1 B%}
计算A / B:{%widthratio A B 1%}
计算A ^ 2:{%widthratio A 1 A%}
计算(A + B)^ 2:{%widthratio A | add:B 1 A | add:B%}
计算(A + B)*(C + D):{%widthratio A | add:B 1 C | add:D%}
您也可以在2分钟内创建一个分割过滤器
答案 1 :(得分:20)
使用自定义过滤器:
register = template.Library()
@register.filter
def divide(value, arg):
try:
return int(value) / int(arg)
except (ValueError, ZeroDivisionError):
return None
答案 2 :(得分:4)
我会使用自定义模板,但如果您不想,可以使用内置标签的widthratio,
{% widthratio request.session.get_expiry_age 3600 1 %}
另一个例子
{% widthratio value 1150000 100 %}
语法:
{% widthratio parm1 parm2 parm3 %}
所以基本上它用于缩放图像,但你可以用它来划分。它的作用是:parm1 / parm2 * parm3。
希望这会有所帮助,更多关于widthratio here。
答案 3 :(得分:4)
答案 4 :(得分:3)
查看http://djangosnippets.org/snippets/2424/
希望能帮到你。
答案 5 :(得分:2)
您可以使用divisibleby
如果该值可被参数整除,则返回True。
例如:
{{ value|divisibleby:"3" }}
如果value为21,则输出为True。
您还可以看到django docs