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>