在上一章节简单介绍了django后台的创建、使用及管理等,但是在真正的管理的时候我们需要显示对应数据表里的某些具体的内容,或者只可以修改其中的部分字段。这就需要我们自己设置显示字段了。还有就是除了django自带的Field,我们可以自定义Field来使用。
后台进阶
- 后台汉化
在项目的第二层demo目录下的settings.py文件中找到这两句并修改为如下,修改时区是为了在写入或者修改数据库中关于时间的字段能符合你本地时间(以下是基于django1.8版本以上修改方式):
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
- 后台标题和名称的修改
在上一章中你会发现后台管理的标题是:Django管理,在实际项目中不可能使用它这个标题,原来界面如下:
可以看到网页title为“登录|Django后台管理”,header为“Django管理”,当然这些是可以修改的,我们打开login这个app模型下的admin.py文件并修改为如下(还有一种方法是重写admin.AdminSite这里就不做介绍了):
from django.contrib import admin
# Register your models here.
from login.models import Members
from login.models import Types
admin.site.site_header = '智城后台管理'
admin.site.site_title = '智城'
admin.site.register(Members)
admin.site.register(Types)
修改后的界面如下:
- favicon.ico配置
默认情况下,浏览器访问一个网站的时候,同时还会向服务器请求“/favicon.ico”这个URL,目的是获取网站的图标。没有图标就用默认的图标,所以这个错误也没有跟通常的404错误一样在网页上显示出来。
不过我们还是应该给网站配置一个图标,这样用户体验会更好一些。
首先我们选好一个图标并重命名为favicon.ico,然后把这个图标放在 /static/img/ 目录下。由于django后台中没有设置favicon.ico图标的语句,所以我们得修改它的base.html页面。 任何Django默认admin模块都可以被重写或者修改,重写修改后的模板要放在哪里呢?默认情况,Django自动查找目录/templates/子目录里面的每个应用包,作为后备(不要忘记django.contrib.admin也是一个应用),如果没找到对应的重写或者修改的文件就回去django的安装目录里去找默认的模板文件。所以我们要修改它的模板就先在templates文件夹下建立一个admin文件,然后通过在终端找到django安装包路径,然后去里面将base_site.html复制到刚刚建立的admin目录下:
# python2的django安装包所在位置
python -c "import sys;sys.path=sys.path[1:];import django;print(django.__path__)"
# python3的django安装包所在位置
python3 -c "import sys;sys.path=sys.path[1:];import django;print(django.__path__)"
然后进入到这个目录,再进入里面的 contrib/admin/templates/admin/ 目录就能看到这个html文件了,将这个base_site.html文件复制到新建的admin目录下,添加一行link标签:
<head>
<title>{% block title %}{% endblock %}</title>
<link rel="icon" type="image.png" href="/static/img/favicon.ico"> <!-- added here -->
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}" />
{% block extrastyle %}{% endblock %}
{% if LANGUAGE_BIDI %}<l