Django自定义过滤器

  Django自身提供了很多功能已经比较强大的过滤器,但是有时候可能应业务需求的场景我们需要使用一些自己定义的方式方法解决一些问题,这个时候就需要考虑自己定义一些过滤器,那么如何机自定义过滤器呢

  我们自己定义的一些过滤器一般都是和我们Django中的一些app(应用)绑定在一起的,所以首先你要知道是为哪个应用定义过滤器的,然后在你的应用内新建一个命名templatetags的文件夹,需要注意点的一个地方就是在这个新建的文件夹下需要添加一个__init__.py的文件,在python2.x系列中会自动生成但是在python3.x没有,所以使用python3.x的需要自己手动添加这样一个文件,然后紧接着就是创建你想要定义的过滤器的文件夹的名字,比如说我们想要自定义一个在返回结果的后面添加百分号的一个过滤器,这里我们起名为percent.py,此时你的目录文件如下图所示:

Django自定义过滤器_第1张图片

接下来就是在percent.py这个文件中自定义过滤器的,为了让我们自定义的过滤器可以使用,Django要求我们自定义的过滤器必须要在django中进行注册,所以我们首先需要在percent.py这个文件中先导入两行代码  

from django import template

register = template.Library()

    做完以上工作之后开始正式进入定义过滤器方法,当自定义的过滤器方法结束之后然而还没有完全结束,我们需要把我们自定义的过滤器注册为Library的实例,让它可以被Django的模板语言找到,如果这一部没有进行会出现如下提示:

 

    所以最后一步就是  将我们自定的过滤器方法注册为Libray的实例:register.filter(percent)

    到这里自定义过滤器基本算是结束了,那如何将我们自定义的过滤器应用到模板中呢,在这里我们需要使用到一个load的方法,将过滤器文件加载到html文件中具体的方法如下:{% load 过滤器的文件名 %},具体过滤的函数的使用和Django内置的过滤器函数的使用方法类似,别忘了添加单竖线,后面加上你所定义的方法

 Django自定义过滤器_第2张图片

  另外一个需要注意的一点是当前所有的工作结束之后手动重启一下django服务器(django不会自动重启)

你可能感兴趣的:(Django自定义过滤器)