1.后台的配置
登录地址 :http://localhost:8000/admin
创建后台管理员(超级用户):
在终端输入:./manage.py createsuperuser
Username : 输入用户名,默认为系统账户名
Email Address : 电子邮件
Password : 密码
Password(again) : 确认密码
2.Models的基本管理
1.在应用中的 admin.py 中注册要管理的实体类
1.admin.py
作用:注册要管理的Models类,只有注册后才能管理
2.注册Models
from .models import *
admin.site.register(Entry)
from .models import * # Register your models here. # 第一个参数是实体类,第二个是高级管理类的类名。 admin.site.register(Author,AuthorAdmin)
2.修改Models提升可读性
1.重写每个实体类中的 __str__()
后台显示的将以 __str__ 的返回值为准
def __str__(self): return self.name
3.通过Models类的内部类Meta定义其展现形式
class Author(models.Model): ... ... class Meta: #1.指定映射到的表的名称(改属性完成后需要同步数据库,要不然后面可能会报错) db_table = 'author' #2.定义在后台的admin中显示名称(单数) verbose_name = '作者' #3.定义在后台的显示名称(复数) verbose_name_plural = verbose_name #4.定义数据在后台的排序方式,前面添加-,表示降序排 ordering = ['-age','id']
3.Models的高级管理
1.在 admin.py 中创建高级管理类并注册
1.定义 EntryAdmin 类 ,继承自 admin.ModelAdmin
class AuthorAdmin(admin.ModelAdmin):
pass
2.注册高级管理类
admin.site.register(Entry,EntryAdmin)
ex:
admin.site.register(Author,AuthorAdmin)
2.允许在EntryAdmin中添加属性
1.list_display
作用:定义在列表页上显示的字段
取值:由属性名组成的元组或列表,以下的list_display_links,list_editable,search_fields,list_filter,fields都是这样的取值方式。
# 定义显示在列表页上的字段 list_display = ('name','age','email')
2.list_display_links
作用:定义在列表页上也能够链接到详情页的字段
注意:取值必须要出现在list_display中
# 定义允许链接到详情页的字段们 list_display_links = ('email','name')
3.list_editable
作用:定义在列表页上就能够修改的字段们
注意:取值必须要出现在list_display中但不能出现在list_display_links中
# 定义在列表页中就允许修改的字段 list_editable = ('age',)
4.search_fields
作用:定义搜索栏中允许搜索的字段值们
# 定义搜索字段 search_fields = ('name',)
5.list_filter
作用:列表页的右侧在增加过滤器实现快速筛选
# 定义右侧过滤器 list_filter = ('name','age')
6.date_hierarchy
作用:列表页的顶部增加一个时间选择器,
取值:属性必须是 DateField 或 DateTimeField 的列
# 增加时间选择器 date_hierarchy = 'book_date' # 时间字段
7.fields
作用:在详情页面中,指定要显示哪些字段并按照什么样的顺序显示
#指定在详情页上显示的字段以及顺序,如果还有多余的字段没有写的话,那就不显示。 fields = ('name','email','age')
8.fieldsets
作用:在详情页面中对字段们进行分组显示
注意:fieldset 与 fields 不能共存
取值:
fieldsets = (
#分组1
('分组名称',{
'fields':('属性1','属性2'),
'classes':('collapse',) #如果加了这个,表示可以收缩显示。
}),
#分组2
()
)