Django学习——后台管理

1.管理界面本地化

本地化是将显示的语言、时间等使用本地的习惯,这里的本地化就是进行中国化,*地区使用简体中文,时区使用亚洲/上海时区,注意这里不使用北京时区表示。
打开项目文件下的 settings.py 文件,找到语言编码、时区的设置项,将内容改为如下:

LANGUAGE_CODE = 'zh-hans' #使用中国语言
TIME_ZONE = 'Asia/Shanghai' #使用中国上海时间

2.创建管理员

创建管理员的命令如下,按提示输入用户名、邮箱、密码。

python manage.py createsuperuser

Django学习——后台管理
接下来启动服务器

python manage.py runserver

Django学习——后台管理
打开浏览器,在地址栏输入如下地址回车。

http://127.0.0.1:8000/admin/

Django学习——后台管理
输入前面的用户名和密码,点击登录

登录后发现里面并没有显示任何类对象。

在这之前,我已经创建了一个“school”APP,并在其中创建好了两个模型类

school/models.py

class Teacher(models.Model):
    name = models.CharField(max_length=20)
    age = models.IntegerField()

class Student(models.Model):
    name = models.CharField(max_length=20)
    age = models.IntegerField()

但是登录成功后并没有发现两个模型类的入口,接下来我们进行第三步操作。
Django学习——后台管理

3.注册模型类

登录后台管理后,默认没有我们创建的应用中定义的模型类,需要在自己应用中的admin.py文件中注册,才可以在后台管理中看到,并进行增删改查操作。

打开school/admin.py文件,编写如下代码:

from django.contrib import admin
from school.models import Student,Teacher
# Register your models here.

admin.site.register(Teacher)
admin.site.register(Student)

在浏览器中刷新页面,就可以看到Student和Teacher的管理了
Django学习——后台管理
我们可以试着给模型类添加两个实例,这里我添加了两个Student实例:
name =“ 张三”,age = 18 和 name = “李四”,age = 19

然后添加了一个Teacher实例:
name = “吴老师”,age = 37

但是我们会发现,添加完成后它的显示界面是这样的,我们需要再一次点击进入才能看到里面的内容
Django学习——后台管理
Django学习——后台管理
这种查看方法非常的不方便,那么我们有没有办法去解决呢?
其实我们只要利用Djiango提供的自定义管理页面的功能就能解决了,接下来我来演示一下

  • 打开school/admin.py文件,自定义类,继承自admin.ModelAdmin类
  • 属性list_display表示要显示哪些属性
class StudentAdmin(admin.ModelAdmin):
    list_display = ['name','age']
  • 修改模型类school的注册代码如下:
admin.site.register(Teacher,TeacherAdmin)

最终school/admin.py文件代码如下:

from django.contrib import admin
from school.models import Student, Teacher
# Register your models here.

class StudentAdmin(admin.ModelAdmin):
    list_display = ['name','age']

class TeacherAdmin(admin.ModelAdmin):
    list_display = ['name','age']


admin.site.register(Teacher,TeacherAdmin)
admin.site.register(Student,StudentAdmin)