filter只能传一个形参,simple_tag可传许多形参,但是控制语句中只能使用filter。
1.在应用文件下创建templatetags文件夹,并在该文件夹内创建相应的py文件。内容前三行必须的,如:
from django import template from django.utils.safestring import mark_safe register = template.Library() #register名字不能改变 @register.filter def tag_multi(x,y): print(x,y) return x*y @register.simple_tag def simple_tag_multi(x,y,z,m): return x*y*z*m
2.在需要的和html模板前添加{% load tag_multi %},如:
{% load tag_multi %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body>
{{ dic.age|tag_multi:3 }}
{% simple_tag_multi 1 2 3 4 %}
</body>