欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

django过滤器

程序员文章站 2022-05-22 23:32:46
...

1、创建过滤器文件

django过滤器

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

django过滤器

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

这里是返回数据的大写

django过滤器

4、注册

(1)文件内注册

register.filter()

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

django过滤器

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

django过滤器

 

(2)在setting里注册

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

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

django过滤器

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

django过滤器

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

django过滤器

 

5、使用过滤器

(1)加载过滤器

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

django过滤器

(2)使用过滤器

前端:

django过滤器

urls:

django过滤器

views:

django过滤器

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过滤器