Django模板有划分过滤器吗?

Sam*_*Sam 36 python django

我注意到有内置add过滤器,但我无法找到divide.

我是Django的新手,不确定是否有这样的过滤器.

Goi*_*oin 64

没有它.但如果你是一个小黑客....

http://slacy.com/blog/2010/07/using-djangos-widthratio-template-tag-for-multiplication-division/

计算A*B:{%widthratio A 1 B%}

计算A/B:{%widthratio AB 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分钟内创建一个过滤器

  • 无论如何,即使有链接,内容也应该放在答案上.:) (4认同)
  • 这是一个有趣的使用widthratio标签,但是,它肯定会让人摸不着头脑,想弄清楚它在做什么,imo. (3认同)
  • Boo断链 (2认同)

sid*_*rcy 21

使用自定义过滤器:

register = template.Library()

@register.filter
def divide(value, arg):
    try:
        return int(value) / int(arg)
    except (ValueError, ZeroDivisionError):
        return None
Run Code Online (Sandbox Code Playgroud)


rad*_*tek 6

我会使用自定义模板,但如果你不想,你可以使用 widthratio 内置标签,

{% widthratio request.session.get_expiry_age 3600 1 %} 
Run Code Online (Sandbox Code Playgroud)

另一个例子

{% widthratio value 1150000 100 %}
Run Code Online (Sandbox Code Playgroud)

句法:

{% widthratio parm1 parm2 parm3 %}
Run Code Online (Sandbox Code Playgroud)

所以基本上它用于缩放图像,但您可以将它用于划分。它的作用是:parm1/parm2 * parm3。

希望这会有所帮助,更多关于 widthratio在这里


guh*_*hur 5

在您的模板中有一个Python模块可以进行数学运算:Django-Mathfilters

add如您所说,它包含以下内容div

 8 / 3 = {{ 8|div:3 }}
Run Code Online (Sandbox Code Playgroud)