Django虽然已经内置了不少的过滤器,但有时候需要实现一些特别的功能,不得不自己写一些过滤器。
比如,我想自己写一个过滤器用来过滤内容中的html标签,而不是使用django自带的Safe标签来解释html标签。
具体怎么做呢?
1、在你的app/应用目录下创建一个templatetags文件夹
注意,必须是这个名称,其他名称是不行的。
2、打开settings.py,在INSTALLED_APPS下添加该应用
如下:
3、在之前创建的templatetags目录下创建一个mydesc.py文件
这个py文件名是自定义的,关键是里面的内容啦
4、开始在mydesc.py文件中写你的过滤器功能了
导入两个包
from django.template import Library register = Library() #过滤html标签 @register.filter(name='mydesc') def mydesc(value): pattern = re.compile(r'<[^>]+>', re.S) content = pattern.sub('', value) return content
这样一个名为mydesc的过滤器就创建好了。
6、如何在模板中使用?
先在模板文件中导入
{%load mydesc%}
然后就可以开始使用了
模板中:
可以和官方自带的过滤器一起使用了呢。
标签: