-
django提供了比较完善的后台管理数据库的接口,可供开发过程中调用和测试使用
-
django会搜集所有已注册的类模型,为这些模型类提供数据管理界面,供开发者使用
-
admin管理后台登录地址:http://127.0.0.1:8000/admin
-
管理界面
-
创建后台管理账号 该账号为管理后台最高权限账号
$ python3 manage.py createsuperuser
可以在后台配置用户和组,配置权限等
四、注册自定义模型类若要自己定义的模型类也能在/admin后台管理界面中显示和管理,需要将自己的类注册到后台管理界面中
注册步骤:
-
在应用app的admin.py中导入注册要管理的模型models类,如:
from .models import Book
-
调用admin.site.register方法进行注册,如:
admin.site.register(自定义模型类)
注册完成后,查看管理界面:
修改的时候,显示的样式和__str__
中定义的一样
作用:为后台管理界面添加便于操作的新功能
说明:后台管理器类必须继承自django.contrib.admin里的ModelAdmin类
使用方法:
-
在<应用app>/admin.py里定义模型管理器类
class XXXXManager(admin.ModelAdmin): ....
-
绑定注册模型管理器和模型类
from django.contrib import admin from .models import * admin.site.register(YYYY, XXXXManage) # 绑定YYYY模型类与管理器类XXXXManager
案例:
# file : bookstore/admin.py
from django.contrib import admin
from .models import Book, Author
# Register your models here.
admin.site.register(Book)
admin.site.register(Author)
class BookManager(admin.ModelAdmin):
# 列表页显示哪些字段的列
list_display = ['id', 'title', 'price', 'market_price']
# 点击哪一列可以进入修改界面,默认是ID
list_display_links = ['title']
# 添加过滤器
list_filter = ['pub']
# 添加搜索框
search_fields = ['title']
# 添加可在列表页编辑的字段
list_editable = ['price']
admin.site.register(Book, BookManager)
配置完成后,后台管理系统界面:
官方文档:https://docs.djangoproject.com/en/2.2/ref/contrib/admin/
六、再谈Meta类通过Meta内嵌类,定义模型类的属性,用法如下:
class Book(models.Model)
title = CharField(...)
class Meta:
1. db_table = '数据表明'
- 该模型所用的数据表的名称。(设置完成后需要立马更新同步到数据库)
2. verbose_name = '单数名'
- 给模型对象一个易于理解的名称(单数),用于显示在/admin管理界面中
3. verbose_name_plural = '复数名'
- 该对象复数形式的名称(复数),用于显示在/admin管理界面