django中自定义标签和过滤器

想要实现自定义标签和过滤器需要进行准备工作:

1 在某个app下创建一个名为templatetags(必需,且包名不可变)的包。假设我们在名为polls的app下创建了一个templatetags的包,并在该包下创建了一个名为mytags的文件。那么目录结构看起来应该就像这样:

kingadmin/
__init__.py
models.py
templatetags/
    __init__.py
    mytags.py
views.py

2 setting文件按中的INSTALLD_APPS内必须含有该app。接下来,我们需要确认settings文件中的INSTALLED_APPS变量中已经有了kingadmin

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',

'CRM',
'student',
'king_admin',
]

3 接下来在mytags文件中写入如下几行

from django import template

register = template.Library()

4 在模板中使用{% load %} 标签装载自定义标签或者装饰器

 {% load mytags %}

自定义标签

自定义标签分为很多类型

  1 简单标签 Simple tags
  2 内含标签 Inclusion tags
  3 分配标签 Assignment tags

一 简单标签

from django import template

register = template.Library()

@register.simple_tag()
def render_app_name(admin_class):
        return admin_class.model._meta.verbose_name

html内容

{% load tags %}

<td>{% render_app_name admin %}</td>
posted @ 2018-08-15 16:08  三教布衣  阅读(447)  评论(0编辑  收藏  举报