Django自定义filter和simple_tag步骤与使用

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>

猜你喜欢

转载自www.cnblogs.com/chouchoudedahuilang/p/12917183.html