1. 在app下创建一个名为templatetags(必需,且包名不可变)的包 ,在该包下创建了一个名为my_tags(名称自定义)的文件。

2.my_tags文件
from django import template
register = template.Library() # register固定变量名,不可变
@register.simple_tag() # 不能用户IF语句
def sum_01(v1, v2, v3):
return v1 + v2 + v3
@register.filter() # 装饰器为filter 时,最多输入两个参数
def sum_02(v1, v2):
return v1 + v2
3.模板文件
{% load my_tags %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>template</h1>
{#@register.simple_tag 多个参数时用空格隔开 ad100#}
{% sum_01 1 22 33 %}
{#@register.filter 只能传入两个参数#}
{{ 11|sum_02:22 }}
{% if obj|sum_02:22 > 30 %}
<p>大于30</p>
{% elif obj|sum_02:22 < 30 %}
<p>小于30</p>
{% else %}
<p>等于30</p>
{% endif %}
</body> </html>

浙公网安备 33010602011771号