一、概述
内容发布:负责添加、修改、删除内容
公告访问
二、配置Admin应用
在settings.py文件中的INSTALLED_APPS中添加'django.contrib.admin',默认是添加好的
三、创建管理员用户
在项目的根目录下,执行命令:python manage.py createsuperuser
依次输入用户名、邮箱、密码(密码不能太复杂)
四、汉化
修改setting.py
LANGUAGE_CODE = 'zh-Hans' TIME_ZONE = 'Asia/Shanghai'
五、管理数据表
准备工作:在admin.py文件中添加
1 from .models import Grades,Students # . 表示同目录下的文件 2 # 注册模型类 3 admin.site.register(Grades) 4 admin.site.register(Students)
自定义管理界面:
1、代码
# 管理班级界面,需要注册一个相应的管理类 class GradesAdmin(admin.ModelAdmin): #需要继承 #列表页属性 list_display = ['pk','gname','gdate','ggirlnum','gboynum','isDelete'] list_filter = ['gname'] search_fields = ['gname'] list_per_page = 5 # 每五条一页 # 添加、修改页属性
# fields = ['ggirlnum', 'gboynum', 'gname', 'gdate', 'isDelete']
fieldsets = [
("num", {"fields":['ggirlnum', 'gboynum']}),
("base", {"fields":['gname', 'gdate', 'isDelete']}),
]
# 写好的管理类需要加到注册里
admin.site.register(Grades, GradesAdmin)
2、属性说明
列表属性:
list_display:显示字段
list_filter:过滤字段,页面右上方显示出过滤器按钮
search_fields:搜索字段,页面左上方显示出搜索框
list_per_page:分页
添加、修改页属性:
fields:属性的先后顺序
fieldsets:给属性分组
注意:fields与fieldsets不能同时使用
3、关联对象:
# 准备工作,记得注册 class StudentsAdmin(admin.ModelAdmin): list_display = ['pk', 'sname', 'sage', 'sgender', 'scontend', 'sgrade', 'isDelete'] list_per_page = 2
需求:在创建一个班级时可以直接添加两个学生
# 在admin.py添加一个类 class StudentsInfo(admin.Tabularlnline): # 也可以继承admin.StackedInline,两张的区别在于页面显示效果不同 model = Students extra = 2 # 注意:要在GradesAdmin类添加一行;为了节省空间,剩余的代码就不往上填了 class GradesAdmin(admin.ModelAdmin): inlines = [StudentsInfo]
4、布尔值显示替换成想要的参数:
# 增加函数gender() class StudentsAdmin(admin.ModelAdmin): def gender(self): if self.sgender: return '男' else: return '女' # 将页面列的字段替换成想要显示的字段 gender.short_description = "性别" # 将函数gender作为参数传入,代替sgender list_display = ['pk', 'sname', 'sage', gender, 'scontend', 'sgrade', 'isDelete']
使用装饰器完成注册:
# 用装饰器来代替之前的注册函数 @admin.register(Students) class StudentsAdmin(admin.ModelAdmin):
完结