django过滤器

1、创建过滤器文件

django过滤器_第1张图片

2、导入模块,然后实例化,变量名必须是register

django过滤器_第2张图片

3、定义一个自己的过滤器函数

这里是返回数据的大写

django过滤器_第3张图片

4、注册

(1)文件内注册

register.filter()

如下图红框所示,引号内的big是过滤器的名字,而后面的big则是上面的函数big

django过滤器_第4张图片

或者是使用装饰器注册,而且注册的时候不需要调用函数,直接命名

django过滤器_第5张图片

 

(2)在setting里注册

Templatetag\templatetags\filt.py是这个过滤器文件的路径

其中,Templatetag是app,所以如果这是新的app还没有导入的话,还需要先导入,如果版本是1.9之前的版本的话,做到这一步就可以了

django过滤器_第6张图片

如果版本是1.9到2.0之间的话,则还需要下面这一步

django过滤器_第7张图片

如果版本是2.0之后的版本的话,则和1.9-2.0版本类似,但是不再需要在OPTIONS下的context_processors下添加了,直接在后面添加就行

django过滤器_第8张图片

 

5、使用过滤器

(1)加载过滤器

在前端界面中使用{% load %}加载

django过滤器_第9张图片

(2)使用过滤器

前端:

django过滤器_第10张图片

urls:

django过滤器_第11张图片

views:

django过滤器_第12张图片

filt:

from django import template

register = template.Library()


def big(value):
    return value.upper()


register.filter("big", big)


@register.filter("little")
def little(value):
    return value.lower()


@register.filter("repBig")
def repBig(value, args):
    return value.replace(args, args.upper())


@register.filter("addNum")
def addNum(value, args):
    return int(value) + int(args)


from Student.models import Student


@register.filter("getStudent")
def getStudent(value):
    id = int(value)
    stu = Student.objects.get(id=id)
    return stu.age, stu.classes

 

django过滤器_第13张图片

 

 

你可能感兴趣的:(django过滤器)