自定义标签、过滤器-django
自定义标签、过滤器-django
@(python)
过滤器
- 在app中新建templatetags目录,目录中新建__init__.py文件名的空文件。也可使用
python manage.py startapp templatetags
新建templatetags目录。 - 在templatetags下新建filter文件,如custom_filter.py(文件名字可自定义),
#custom_filter.py
#!/usr/bin/env python
#coding:utf-8
from django import template
register = template.Library()
def mul_filter(value,arg=None):
return value * 2
register.filter('mulFilter', mul_filter)
@register.filter(name='addFilter')
def add_filter(value,arg=None):
return value + 10
custom_filter.py自定义两个过滤器 mul_filter与add_filter,add_filter是使用修饰符注册过滤器,如果没有自定过滤器名称name,Django使用函数名作为过滤器的名字。
- 在模版中开头处加载过滤器 {% load custom_filter %},即可调用过滤器
如
<!--show.html-->
<html>
<head>
<title>测试Django模板</title>
</head>
<body>
{% load custom_filter %}
<p>{{2|mulFilter}}</p>
<p>{{2|addFilter}}</p>
<p>{{testFilter|capfirst}}</p>
{% for item in user_list %}
<p>{{ forloop.counter }}: {{ item.name }}</p>
{% endfor %}
</body>
</html>
- 重启服务器,把新加的filter载入到模板里
标签
待补充
参考文献
http://www.cnblogs.com/btchenguang/archive/2012/09/05/2672364.html