一、概述
內容發布:負責添加、修改、刪除內容
公告訪問
二、配置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):
完結
