步骤:
a.在app中创建templatetags模块(必须的)
b.创建任意.py文件,如:mytag.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 simple_tag_multi(x,y):
return x*y
c.在使用自定义simple_tag和filter的html文件中导入之前创建的mytag.py:{%load mytag%}
{% load mytag %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{{ d|filter_multi:3 }}
{% simple_tag_multi 3 5 %}
</body>
</html>
d.使用simple_tag和filter
e.在setting中的INSTELLED_APPS配置当前app,不然django无法找到自定义的simple_tag
注意:filter只能传2个参数过去,包括自身,但可以使用在控制语句中; 而simple_tag可以实现多参数传入,但是不可用于控制语句中