django模板中的自定义过滤器

时间:2024-01-10 10:53:38

(1)在APP下创建templatetags文件夹,与Models.py、views.py等同级,templatetags文件夹下添加__init__.py文件,可为空,再添加一个模块文件,例如cpt_filters.py,目录结构如下

myapp/
__init__.py
models.py
templatetags/
__init__.py
cpt_filters.py
views.py
admin.py
appa.py

目录下添加__init__.py文件可让python知道这里是python包,这里的所有python文件可被直接在别处引用。

(2)添加自定义过滤器

from django import template

register = template.Library()
#实例化Library
@register.filter
#注册过滤器 #这个过滤器是返回给定字典中key名称对应的value值
def get_value(mydict, keyname):
return mydict[keyname]

(3)在模板中应用

#首先在模板头部引入过滤器
{% load cpt_filters %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{{ mydict | get_value:keyname }}
</body>
</html