当内置的过滤器或标签无法满足需求时候,可以自定义标签,具体操作如下:

1、在settings中的INSTALLED_APPS添加当前的app名字(现在的2.x版本都是默认自动添加可以忽略)

2、在创建的文件夹创建子文件夹templatetags(这里子文件夹的名字只能是templatetags)

3、在templatetags新建任意的.py文件,如my_tags.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 filter_tag_multi(x,y):
return x*y









 4、自定义过滤器或标签必须重启django
  5、自定义过滤器或标签的使用

 {% load my_tags %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
{% load staticfiles %}
<title>Title</title>
</head>

<body>
{#自定义过滤器的使用#}
<h1>{{ salry|filter_multi:12 }}</h1>
{#自定义标签的使用#}
<h1>{% filter_tag_multi 3 5 %} </h1>
</body>
</html>
01-04 10:48
查看更多