自定义装饰器:在传给前台的数据前或后,加上一些自定义的字符或符号等
写装饰器函数
在子项目下建立templatetags文件夹,在其中建立 my_filter.py文件
from django import template register = template.Library()
@register.filter
def my_str(val):
return "$"+str(val)
def函数中return的格式是自定义的,按要求自己修改.
在setting.py文件中TEMPLATES中的OPTIONS中加入
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
'libraries': {
'my_filter': 'web.templatetags.my_filter',
}
},
},
]
在模板中调用
{% load my_filter %}
{{name|my_str}}
<form action="">
<ul>
{% for foo in userlist %}
<li>
{% load my_filter %}
{{ foo.name |my_str }}
</li>
{% endfor %}
<input type="text" id="p">
<button type="button" onclick="btn()">搜索</button>
</ul>
<div id="pagination"></div>
</form>