Django之模板层-自定义过滤器以及标签

时间:2022-01-15 13:11:21

自定义标签与过滤器

  1. 在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag.
  2. 在app中创建templatetags模块(模块名只能是templatetags)
  3. 创建任意 .py 文件,如:my_tags.py
from django import template

# 该对象名必须是register
register = template.Library() #自定义过滤器装饰器
@register.filter
def multi_filter(x,y):
return x*y #自定义标签装饰器
@register.simple_tag
def multi_tag(x,y):
return x*y

使用自定义的过滤器与标签,在需要使用的模板文件中先导入模块,然后再调用过滤器

    {# 导入自定义的模块 #}
{% load my_tag_filter %}
{{ i|multi_filter:2 }}
{% multi_tag 5 5 %}

过滤器只能接收两个参数,第一个参数是管道符前的值,第二个参数是:后面传入的参数,过滤器可以使用在逻辑判断中

标签可以传入任意参数,以空格分隔,标签不可以使用在逻辑判断中