簡述:
Django的admin可以提供一個強大的後臺管理功能,可以在web界面對數據庫進行操作,我們需要修改admin.py將要操作的數據表註冊到後臺管理中
創建數據表:
爲了便於演示,我們在models.py中創建一張img數據表規則
圖中 verbo_name 是在admin界面顯示錶字段的名稱,定義的class Meta中的verbo_name是在admin界面顯示的表名
修改admin.py文件
from django.contrib import admin
from app1 import models
# Register your models here.
admin.site.register(models.img) #將表在admin中註冊
啓動服務,進入界面
python manage.py makemigrations #生成創建數據表py文件
python manage.py migrate #執行py文件,更新數據庫
python manage.py runserver #啓動服務
打開瀏覽器,訪問http://127.0.0.1:8000/admin
輸入設置的賬號密碼,進入界面
默認的功能可以對錶進行簡單的增刪改查,如果需要批量更新之類的操作,則需要定製相應動作
自定義內容顯示:
我們選擇進入我們創建的表的界面的時候,默認顯示的內容是object
可以在models.py中的相應表寫下定義__str__的字段
效果如下
默認顯示的內容只有一個,我們可以通過定義ModelAdmin中的list_display來修改它:
from django.contrib import admin
from app1.models import img
# Register your models here.
class imgAdmin(admin.ModelAdmin):
list_display = ('title','summary','file')
admin.site.register(img,imgAdmin)
點擊一條數據後,將默認顯示每個字段不是一個AutoField並且editable=True在單個字段集中具有與模型中定義的字段相同的順序。
我們可以定義ModelAdmin中的fields或exclude來修改它:
class imgAdmin(admin.ModelAdmin):
list_display = ('title','summary','file')
fields = ('title',)
exclude跟fields相反
自定義動作
默認動作只有刪除一項
我們可以通過ModelAdmin自定義
def change_up(modeladmin, request, queryset): #定義動作
queryset.update(stat='1')
change_up.short_description = "up" #重寫動作顯示名稱
def change_down(modeladmin, request, queryset):
queryset.update(stat='0')
change_down.short_description = "down"
class imgAdmin(admin.ModelAdmin):
list_display = ('title','summary','file','stat')
fields = ('title',)
actions = [change_up,change_down] #綁定動作