当内置的过滤器或标签无法满足需求时候,可以自定义标签,具体操作如下:
1、在settings中的INSTALLED_APPS添加当前的app名字(现在的2.x版本都是默认自动添加可以忽略)
2、在创建的文件夹创建子文件夹templatetags(这里子文件夹的名字只能是templatetags)
3、在templatetags新建任意的.py文件,如my_tags.py,在该文件中自定义过滤器或标签,文件内容如下
from django import template from django.utils.safestring import mark_safe register = template.Library() # register的名字是固定的,不可改变 # 自定义过滤器 @register.filter def filter_multi(x, y): return x * y
# 自定义标签
@register.simple_tag
def filter_tag_multi(x,y):
return x*y
4、自定义过滤器或标签必须重启django
5、自定义过滤器或标签的使用
{% load my_tags %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
{% load staticfiles %}
<title>Title</title>
</head>
<body>
{#自定义过滤器的使用#}
<h1>{{ salry|filter_multi:12 }}</h1>
{#自定义标签的使用#}
<h1>{% filter_tag_multi 3 5 %} </h1>
</body>
</html>