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>

  

 

posted on 2021-08-26 14:15  last2233  阅读(86)  评论(0)    收藏  举报