django中新建项目,在项目中新建app,自定义filter一般放到app中。结构目录如下:
1.先在APP中新建一个templatetags的django文件夹,文件夹中新建一个filter的py文件。
myfilter.py:
from django import template
register = template.Library() #固定用法
@register.filter(name='mf') //需要加别名
def add_mf(arg):
return "{} mf !".formate(arg)
@register.filter(name='addstr')
def add_str(arg,arg1):
return "{} {} mf !".formate(arg,arg1) #第一个参数是html传入的变量名,此例中是name(管道前面的变量);arg1是传入的变量
2. html文件引用自定义filter
{% load myfilter %} <!--load是引用的意思固定用法,myfilter是自定义filter的模块名称(即py文件名)-->
{ { name | mf }} <!--mf是自定义filter的装饰器中的自定义别名-->
{ { name | addstr:'beautiful'} } <!--带参数的自定义filter-->