django-DIL模板自定义过滤器

  • 自定义过滤器
    • DTL模板语言生来只是为了方便的展示信息,所以与编程语言相比显得有点薄弱,有时候不能满足我们的需求。因此django提供了一个接口,让开发者能自定义标签和过滤器。
    • 首先,你需要添加一个templatetags的文件夹, 自定义过滤器必须处在已经安装了的app中的一个名叫”templatetags”的包(文件夹)中。因此可以有两种选择:
      • 一种是放在其他已经安装了的app中。这种方式简单,但不方便管理。
      • 单独创建一个app,用来存放所有的自己定义的过滤器。 推荐使用
    • ps: templatetags 文件夹名字不能修改,这是django固定死的

1.使用上述第二种创建公用的app utils       ------      工具,在utils app下创建templatetags固定名称

在templatetags下创建py文件,编写过滤器

2.py文件中   utils.templatetags.py

# coding=utf-8
from django import template

# 代表该文件是自定义标签名 register固定写法
register = template.Library()

# html模板中调用{{ msg|myCut:'args' }}
@register.filter  # 过滤器装饰器
def myCut(value, args):
    # 根据需求编写代码
    return u'自定义过滤器某些字符返回小写: %s' % (value.replace(args, '').lower())

3.***需要在settings文件中导入该app  utils

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'utils', # 创建自定义过滤器需要引入该app
]

猜你喜欢

转载自www.cnblogs.com/tangpg/p/9007572.html