在Django中使用自定义的过滤器需要先注册一下,否则会报下记的错误表示没有该自定义的过滤器。

使用自定义过滤器主要有以下几个步骤:1.做注册过滤器的准备工作 2. 编写自定义过滤器的函数 3. 使用自己定义的过滤器。
1. 做注册过滤器的准备工作主要是创建过滤器相关的文件。首先在自己的app目录我的是index文件夹下创建一个python包templatetags,即右键index-》New-》Python Package 命名为templatetags,里面自动含有__init__.py文件。之后再创建一个自己的py文件为index_tags.py,可以在此文件内编写自己的过滤器或标签。

2. 在自己的过滤器文件中index_tags.py创建自己的过滤器hello_my_fillter,并用@register.filter注册。注意register只用前需要使用前边两句引入,否则会报错。
- from django import template
- register = template.Library()
-
- @register.filter
- def hello_my_filter(value):
- return value.replace('django','Python')
3.最后在view.py文件和html文件中应用。具体如下。
在templates文件夹下创建hello_filter.html文件程序代码如下。
- html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>hello_filtertitle>
- head>
- <body>
- {% load index_tags %}
- <h1>:{{ Web|hello_my_filter }}h1>
- body>
- html>
在应用index的views.py 文件中创建函数,以显示编写好的html文件
- def hello_filter(request):
- t=loader.get_template('hello_filter.html')
- html=t.render({'Web':'Web django Django'})
- return HttpResponse(html)
在index的urls.py文件中配置显示路由:
path('hello_filter/',views.hello_filter)
最后刷新浏览器显示如下:

补充项目文件组织结构图如下。
