自定义的模版过滤器必须要放在app中,并且该app必须在INSTALLED_APPS中进行安装。然后再在这个app下面创建一个python包叫做templatetags(这个名字是固定的,不能随意更改)。再在这个包下面创建一个python文件。然后在这个文件中写过滤器。
  过滤器实际上就是python中的一个函数,只不过是把这个函数注册到模板库中,以后在模版中使用这个函数了。但是这个函数的参数有限制,第一个参数必须是这个过滤器需要处理的值,第二个参数可有可无,如果有,则在模版中传参。并且过滤器的函数最多只能有两个参数。在写完过滤器后,再使用django.template.library对象注册进去。实例代码如下:
过滤器文件中:

 from django import template

 register = template.Library()

 def my_template(value)
if value != '':
value += '%'
return value
# 注册过滤器
# 第一种方式
register.filter("my_template",my_template)#引号里的是在模板中使用时的名字,后面的是过滤器文件中的函数名。
# 第二种方式
使用@register.filter装饰器进行装饰过滤器函数,默认过滤器函数名即为模版中使用的名字,如果修改使用名,只需将名字写在装饰器的参数中即可,如@register.filter('my'),使用时是写my,而不是my_template。

模板文件中需要加载:

 {# 在第一行加载过滤器 #}
{% load '过滤器文件的名字' %}

django 自定义模版过滤器的更多相关文章

  1. Django 自定义模版标签和过滤器

    实现自定义过滤器 1. 创建register变量 在你的模块文件中,你必须首先创建一个全局register变量,它是用来注册你自定义标签和过滤器的, 你需要在你的python文件的开始处,插入几下代码 ...

  2. Django 模版过滤器

    模版常用过滤器 在模版中,有时候需要对一些数据进行处理以后才能使用.一般在Python中我们是通过函数的形式来完成的.而在模版中,则是通过过滤器来实现的.过滤器使用的是|来使用.比如使用add过滤器, ...

  3. Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静态文件的加载load static),自定义simple_tag和inclusion_tag

    Django---MTV和MVC的了解,Django的模版语言变量和逻辑,常见的模板语言过滤器,自定义过滤器,CSRF了解,Django的母版(继承extends,块block,组件include,静 ...

  4. Django内置模版过滤器

    Django内置过滤器总览 可以查询下表来总览Django的内置过滤器: 过滤器 说明 add 加法 addslashes 添加斜杠 capfirst 首字母大写 center 文本居中 cut 切除 ...

  5. Django自定义过滤器中is_safe和need_autoescape两个参数的理解

    自定义template过滤器的方法参考文档,不再赘述 is_safe 文档说明过滤的两种最终形态,其中一种是设置register.filter(is_safe=True),但是对is_safe的具体作 ...

  6. django -使用jinja2模板引擎 自定义的过滤器

    setting.py中 TEMPLATES = [ { 'BACKEND': 'django.template.backends.jinja2.Jinja2', 'DIRS': [os.path.jo ...

  7. Django自定义过滤器及标签

    一.自定义过滤器 1.自定义过滤器文件存放位置 在APP应用下创建名为templatetags(该文件夹名固定)的文件包(包含__init__.py文件) 注意APP必须在setting中注册 即在s ...

  8. python的Web框架,Django自定义过滤器及标签

    代码布局 有的时候框架给的过滤器不够用,需要自定义一些过滤器,所以就需要我们自己来定义一些过滤器等 自定义代码放置的路径 某个app特用(独有)的 - app 目录下的 templatetags文件夹 ...

  9. day058 聚合 分组查询 自定义标签过滤器 外部调用django环境 事务和锁

    1.聚合(aggregate) 聚合的主要语法: from django.db.models import Avg , Max , Min , Count models.类名 .objects.all ...

随机推荐

  1. L3-022 地铁一日游

    floyd算法建立新图,dfs标记~ #include<bits/stdc++.h> using namespace std; ; const int inf=1e9; int d[max ...

  2. Kubernetes的pod控制器之DaemonSet

    DaemonSet 顶级参数介绍 [root@master manifests]# kubectl explain ds KIND: DaemonSet VERSION: extensions/v1b ...

  3. python2.7环境下升级pip3,及出错解决办法

    执行 pip3 install --upgrade pip 进行升级 升级后若出现, Import Error:cannot import name main 是因为将pip更新为10.0.0后库里面 ...

  4. 802.1X与Cisco基于身份的网络服务(IBNS)

    Cisco基于身份的网络服务(Identity-Based Networking Services,IBNS)是一种以IEEE802.1X标准为基础的安全架构,具有认证.用户策略.访问控制等多种功能, ...

  5. ES2.3.5版本的数据类型

    1,最近使用了2.3.5版本的ES,发现在创建索引的时候出了以下错误. (1)例: POST 192.168.11.166:9200/article3/article/_mapping { " ...

  6. layui弹窗全屏显示

    var index =layer.open({ id: 'id', type: 2, area: ['100%', '100%'], fix: false, maxmin: true, shadeCl ...

  7. ng-class 动态设置css

    可使用ng-class 动态设置class ,设置disable后,发现ng-click 居然还可以使用,不知什么原因. <li ng-class="{disabled:!first} ...

  8. python记录点

    python记录点 文件编码 Unicode使用最少2个字节(1个字节=1BYTE=8bit=一个长度为8的二进制数) 来表示字母和符号等,有时候是4个字节. UTF-8是对Unicode编码的压缩和 ...

  9. linux 添加与修改用户归属组

    参考资源:https://cnzhx.net/blog/linux-add-user-to-group/ 一:已存在的用户 1.要以root进行登录 2.打开终端 3.修改分组 usermod -a ...

  10. robot framework 如何自己写模块下的方法或者库

    一.写模块(RF能识别的模块) 例如:F:\Python3.4\Lib\site-packages\robot\libraries这个库(包)下面的模块(.py),我们可以看下源码 注意:这种是以方法 ...