django模板中的自定义过滤器

Posted 老和尚不念经

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django模板中的自定义过滤器相关的知识,希望对你有一定的参考价值。

(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

 

以上是关于django模板中的自定义过滤器的主要内容,如果未能解决你的问题,请参考以下文章

django模板中的自定义过滤器

“模板语法错误:过滤器无效:”;基于 django 文档的自定义 django 模板过滤器损坏,但模板标签有效

Django 找不到我的自定义模板过滤器

我的自定义 Django 模板过滤器但没有任何其他过滤器的“无效过滤器”错误

Django - 如何在任何包含的模板中使用我的自定义过滤器?

django自定义模板标签和过滤器