16.引言篇——自定义过滤器及标签

1,242 阅读1分钟

引言——在前面讲述了如何使用Django内置的过滤器,这在我们进行某些项目开发时很是方便。但是,内置的过滤器毕竟有限(当内置的满足不了我们的需求该怎么办?),但是规则是死的,人是活的。这就引出了接下来要讲的内容:自定义过滤器及标签。

首先,要理解两个问题是:

  • 自定义过滤器及标签是什么——根据一定规则,自己定义出符合需求功能的;
  • 自定义过滤器及标签用在哪里——用在任何你有需求的地方;

其实,你可以想想为什么你会使用自定义函数,自定义模块!都是一个道理。

1.自定义过滤器及标签的文件路径配置:

我们都知道Django规定模板文件必须放在templates目录下; 相对的,Django也规定自定义过滤器及标签——必须放在templatetags目录下!

2.自定义过滤器及标签两大注意点:

第一点:

自定义过滤器及标签必须放在templatetags目录下!

第二点:

templatetags目录必须包含在已经被注册的app里! (在项目目录下的settings.py文件中如下图位置进行app的注册。) 在这里插入图片描述

3.自定义过滤器及标签所在的templatetags目录放置的位置有两种:

第一种:某个app特用(独有)

  1. app 目录下创建名为templatetags的python模块

    (即包含“__init__.py”文件。也就是说,这个文件夹是个
    Python Package,而不是普通的文件夹。)
    
  2. 公用的——再创建一个新的app,然后在新的app中创建templatetags文件夹(需要注意的是:此app一定要注册哦!)

在这里插入图片描述

在这里插入图片描述