django 自定义模版过滤器

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

 1 from django import template
 2 
 3 register = template.Library()
 4 
 5 def my_template(value)
 6 if value != '':
 7 value += '%'
 8 return value
 9 # 注册过滤器
10 # 第一种方式
11 register.filter("my_template",my_template)#引号里的是在模板中使用时的名字,后面的是过滤器文件中的函数名。
12 # 第二种方式
13 使用@register.filter装饰器进行装饰过滤器函数,默认过滤器函数名即为模版中使用的名字,若是修改使用名,只需将名字写在装饰器的参数中便可,如@register.filter('my'),使用时是写my,而不是my_template。

模板文件中须要加载:django

1 {# 在第一行加载过滤器 #}
2 {% load '过滤器文件的名字' %}
相关文章
相关标签/搜索