Django1.7中文入门教程:[16]自定义admin外观
1、自定义项目模板 在项目目录中创建一个templates目录,Django能接受templates能放到你系统的任何地方。然而把templates目录放到项目目录是一个很明智的选择。
2、 打开mysite/settings.py文件,添加一个TEMPLATE_DIRS设置:
![Django1.7中文入门教程:[16]自定义admin外观](https://exp-picture.cdn.bcebos.com/dda98e4800fc77f7cc4eef94c8715fdb37209094.jpg)
3、TEMPLATE_DIRS 是一个迭代系统目录,用来检测Django的模块,是一个搜索目录。现在在templates目录中新建一个admin文件夹。把目录C:\Python34\Lib\site-packages\Django-1.7-py3.4.egg\django\contrib\admin\templates\admin中的base_site.html文件,复制到工程目录下面的\templates\admin。注:如果亲很难找到Django的源文件,那就运行下面的代码:
![Django1.7中文入门教程:[16]自定义admin外观](https://exp-picture.cdn.bcebos.com/444696013870d5415ecc16bc2e0f94fc518c8094.jpg)
4、然后,编辑base_site.html文件,找到下面这段代码:{{site_header|default:_('Djangoadministration')}}再用Polls Administration替换掉。换了之后的代码如下:PollsAdministration完整代码如下:
![Django1.7中文入门教程:[16]自定义admin外观](https://exp-picture.cdn.bcebos.com/e40b3127e7ef280619412269b840b6f39087f294.jpg)
5、我们用这个方法告诉你怎么重写模块,在真实的项目中,你可能使用django.contrib.admin.AdminSite.site_header 属性来更轻松完成这个特殊制定。这个模板文件包含很多内容,如:{% block branding %} 和 {{ title }};{% 和{{都是Django的一部分的模块语言。当Django渲染admin/base_site.html时,这种模板语言将生成最终的THML页面,如果你现在还不是很了解这种语言,没有关系,我们会在一下节中讲解。任何Django默认admin模块都可以被重写,要重写模板,只要作上面相同的事就可以了。
6、自定义你的APP的模板机敏的读者可能会问:默认的TEMPLATE_DIR是空的,那Django是怎样找到默认的admin模板。答案是,默认情况,Django自动查找目录/templates/子目录里面的每个应用包,作为后备。(不要忘记django.contrib.admin也是一个应用)我们的polls应用并不是一个复杂的应用,没有必要自定义admin模板。但是如果这是一个更复杂和需要修改Django标准admin模板和一些方法。更明智的方法就是修改应用模板。
7、自定义admin index页面和上面相似,你也想自定义admin index页面。默认情况,在INSTALLED_APPS显示所有的app,admin应用已经按照字母顺序被注册好了。你可能想对布局做显著变化。毕竟,index是admin最重要的页面,它应该具有易用性。自定义admin/index.html模板页面。(和前面重写admin/base_site.html模板是一样的,从默认目录复制到自定义模板页面中),编辑文件,你将看到它使用一模板变量:app_list.这个变量包括每一个已经安装的app.