Admin站點管理:
概述:
內容發布:負責添加,修改,刪除內容的
公告訪問
配置Admin應用:
在settings.py文件中的INSTALLED_APPS中添加'django.contrib.admin',
這條默認是添加好的。
創建管理員用戶:
在項目目錄下執行 python manage.py createsuperuser
依次輸入賬號名,郵箱,密碼即可完成用戶創建
登陸:
http://127.0.0.1:8000/admin/
漢化:
把project\settings.py
中作如下設定:LANGUAGE_CODE = 'zh-Hans'
TIME_ZONE = 'Asia/Shanghai'
管理數據表:
修改 myAPP\admin.py 如下:
from django.contrib import admin
# Register your models here.
from .models import Grades, Students
# 注冊
admin.site.register(Grades)
admin.site.register(Students)
自定義管理頁面:
屬性說明
# 列表頁屬性
list_display = [] # 顯示字段設置
list_filter = [] # 過濾字段設置
search_fields = [] # 搜索字段設置
list_per_page = [] # 分頁設置
# 添加,修改頁屬性
fields = [] # 規定屬性的先后順序
fieldsets = [] # 給屬性分組 注意:fields與fieldsets不能同時使用
屬性示例:
# 列表頁屬性
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"]}),
]
關聯對象:需求:在創建一個班級時可以直接添加幾個學生
class StudentsInfo(admin.TabularInline):# 可選參數admin.StackedInline
model = Students
extra = 2
class GradesAdmin(admin.ModelAdmin):
inlines = [StudentsInfo]
布爾值顯示問題示例:
class StudentsAdmin(admin.ModelAdmin):
def gender(self):
if self.sgender:
return "男"
else:
return "女"
# 設置頁面列的名稱
gender.short_description = "性別"
list_display = ['pk', 'sname', 'sage', gender,
'scontend', 'sgrade', 'isDelete']
list_per_page = 10
admin.site.register(Students, StudentsAdmin)
執行按鈕位置:
class StudentsAdmin(admin.ModelAdmin):
...snip...
actions_on_top = False
actions_on_bottom = True
admin.site.register(Students, StudentsAdmin)
使用裝飾器完成注冊:
@admin.register(Students)
class StudentsAdmin(admin.ModelAdmin):
def gender(self):
...snip...
actions_on_top = False
actions_on_bottom = True