接下来,在刚才创建的templates
中创建一个admin
目录,将admin/base_site.html
模板文件拷贝到该目录内。这个html文件来自Django源码,它位于django/contrib/admin/templates
目录内。
如何找到Django源文件: 在命令行中运行下面代码: python -c "import django; print(django.__path__)"
然后替换文件中的{{ site_header|default:_('Django administration') }}
(包括两个大括号),换成你想要命名的名字即可。编辑完成后应该类似下面的代码片段:
{% block branding %} <h1 id="site-name"><a href="{% url 'admin:index' %}">Polls Administration</a></h1> {% endblock %}
这里仅仅是使用这种方法来教您如何覆盖模板。在实际的项目中,您可以使用django.contrib.admin.AdminSite。siteheader属性更容易实现这个特殊的定制。
在这个模板文件中有许多类似这样的文本{% block branding %}
、{{ title }}
。{%
和{{
都是Django模板语法的一部分。当Django渲染admin/base_site.html
的时候,这个模板语言将被生成最终的html页面,就像Part3中一样。
注意任何Django管理站点的默认模板都可以重写。 想要重写一个模板文件,只需要做和重写base_site.html
相同的操作就行——将它从默认的目录拷贝到你自定义的目录中,然后修改它。
聪明的读者可能会问:但是DIRS
默认是空的,Django是如何找到默认的admin模板呢?回答是,由于APP_DIRS
被设置为`True``,Django将自动查找每一个应用路径下的templates/子目录(不要忘了django.contrib.admin也是一个应用)。
我们的投票应用不太复杂,因此不需要自定义admin模板。但是如果它变得越来越复杂,因为某些功能而需要修改Django的标准admin模板,那么修改的模板就比修改项目的模板更加明智。这样的话,你可以将投票应用加入到任何新的项目中,并且保证能够找到它所需要的自定义模板。更多关于Django如何加载模板文件的信息,请查看模板加载 (0%)的文档。
在类似的情况下,您可能想要定制Django管理首页页面。默认情况下,管理站点首页显示所有INSTALLED_APPS
内并在admin应用中注册过的app,以字母顺序进行排序。
要定制管理站点首页,需要重写admin/index.html
模板,就像前面修改base_site.html
模板的方法一样,从源码目录拷贝到你指定的目录内。编辑该文件,你会看到文件内使用了一个app_list
模板变量。该变量包含了所有已经安装的Django应用。你可以硬编码链接到指定对象的admin页面,使用任何你认为好的方法,用于替代这个app_list
。
Django 1.10中文文档-第一个应用Part1-请求与响应
Django 1.10中文文档-第一个应用Part2-模型和管理站点
Django 1.10中文文档-第一个应用Part3-视图和模板
Django 1.10中文文档-第一个应用Part4-表单和通用视图
Django 1.10中文文档-第一个应用Part5-测试
Django 1.10中文文档-第一个应用Part6-静态文件
Django 1.10中文文档-第一个应用Part7-自定义管理站点
文档地址
Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务