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

Posted wualin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django之模板层-自定义过滤器以及标签相关的知识,希望对你有一定的参考价值。

自定义标签与过滤器

  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 %}

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

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

以上是关于Django之模板层-自定义过滤器以及标签的主要内容,如果未能解决你的问题,请参考以下文章

Django——模板层(template)(模板语法自定义模板过滤器及标签模板继承)

django之模板层

63-django-CBV刨析模板层之模板语法传值过滤器标签自定义过滤器标签inclusion_tag模板继承模板导入

Django—— 模板层:变量过滤器标签自定义标签和过滤器

Django--模板层

Django之模板语法