django开发系列:自定义过滤器

django开发系列:自定义过滤器

自定义过滤器:

  1. 首先在某个app中,创建一个python包,叫做templatetags,注意,这个包的名字必须为templatetags,不然就找不到。
  2. 在这个templatetags包下面,创建一个python文件用来存储过滤器。
  3. 在新建的python文件中,定义过滤器(也就是函数),这个函数的第一个参数永远是被过滤的那个值,并且如果在使用过滤器的时候传递参数,那么还可以定义另外一个参数。但是过滤器最多只能有2个参数。
  4. 在写完过滤器(函数)后,要使用django.template.Library.filter进行注册。
  5. 还要把这个过滤器所在的这个app添加到settings.INSTALLED_APS中,不然Django也找不到这个过滤器。
  6. 在模板中使用load标签加载过滤器所在的python包。
  7. 可以使用过滤器了。
  8. django.template.Library.filter还可以当作装饰器来使用。如果filter函数没有传递任何参数,那么将会使用这个函数的名字来作为过滤器的名字。当然如果你不想使用函数的名字来作为过滤器的名字,也可以传递一个name参数。示例代码如下:
from django import template
from datetime import datetime

register = template.Library()

# 过滤器最多只能有两个参数
# 过滤器的第一个参数永远都是被过滤的那个参数(也就是竖线左边的那个参数)
@register.filter('my_greet')
def greet(value,word):
    return value + word

#另一种注册方法
register.filter("greet",greet)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章