Django学习——后台管理
1.管理界面本地化
本地化是将显示的语言、时间等使用本地的习惯,这里的本地化就是进行中国化,*地区使用简体中文,时区使用亚洲/上海时区,注意这里不使用北京时区表示。
打开项目文件下的 settings.py 文件,找到语言编码、时区的设置项,将内容改为如下:
LANGUAGE_CODE = 'zh-hans' #使用中国语言
TIME_ZONE = 'Asia/Shanghai' #使用中国上海时间
2.创建管理员
创建管理员的命令如下,按提示输入用户名、邮箱、密码。
python manage.py createsuperuser
接下来启动服务器
python manage.py runserver
打开浏览器,在地址栏输入如下地址回车。
http://127.0.0.1:8000/admin/
输入前面的用户名和密码,点击登录
登录后发现里面并没有显示任何类对象。
在这之前,我已经创建了一个“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()
但是登录成功后并没有发现两个模型类的入口,接下来我们进行第三步操作。
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的管理了
我们可以试着给模型类添加两个实例,这里我添加了两个Student实例:
name =“ 张三”,age = 18 和 name = “李四”,age = 19
然后添加了一个Teacher实例:
name = “吴老师”,age = 37
但是我们会发现,添加完成后它的显示界面是这样的,我们需要再一次点击进入才能看到里面的内容
这种查看方法非常的不方便,那么我们有没有办法去解决呢?
其实我们只要利用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)