首先举个栗子来说:我们在设置数据时候,通常不会直接使用男,女;而是用男==1,女==0来代替;
但是在页面上显示的时候,我想看到显示的是男,女(中文或者英文);此时我们就需要进行一个自定义的模板;
一、代码布局;
1、某个APP特有;
2、放置在根目录,多个APP共用;
常用的设置:某个APP特有:
1、步骤1:创建一个名称叫tempaltetags的包(必须叫这个,里面必须有__init__.py)
2、APP必须要在INSTALLED_APPS 设置
3、重启服务
二、开始编写代码
1、编写自定义过滤函数
#自定义过滤器函数,改变性别的显示方式
def to_sex(value,flag='zh'):
change = {
'zh' : ('女','男'),
'en' : ('Female','Male')
}
return change[flag][value]
2、注册
from djangoimport template
register = template.Library()#此变量名必须为这个register
#自定义过滤器函数,改变性别的显示方式
def to_sex(value,flag='zh'):
change = {
'zh' : ('女','男'),
'en' : ('Female','Male')
}
return change[flag][value]
#将函数to_sex定义为过滤器
register.filter(to_sex)
3、模板中配置
{%load customer_filter %}
<td>{{student.sex|sex_1:'zh' }}</td>