django的admin的基礎配置和使用

2022-03-18 02:26:32 字數 4568 閱讀 3421

基礎知識點:

一、認識modeladmin

管理介面的定製類,如需擴充套件特定的model介面需要從該類繼承

預設情況下出版商顯示介面如下:

在admin.py中定義乙個出版社的管理類publisheradmin,然後繼承admin.modeladmin類,實現**如下:

class publisheradmin(admin.modeladmin):

list_display = ('name','country','state_province','city',)

解析:這個**的意思除了定義出版社管理類並繼承admin.modeladmin,通過admin.modeladmin的list_display屬性值定義要顯示的部分(name、country、state_province、city),這樣就完成的了要顯示欄位的設定。重新整理頁面。

發現頁面沒有出現我們預期的定義效果,為什麼呢?

仔細看下該**:

class publisheradmin(admin.modeladmin):

list_display = ('name','country','state_province','city',)

發現這裡僅僅是定義了類,而沒有做任何註冊操作。不把定義model類publisheradmin註冊到django原生中admin類中是不能顯示的,那怎麼辦呢?

二、註冊model類到admin的兩種方式:1、使用register的方法(這裡用出版商publisher的類為例)from django.contrib import admin

from hello.models import *

# register your models here.

#定義乙個出版商管理類publisheradmin,然後繼承admin.modeladmin,最後將定義的出版商管理類註冊到admin.site.register中

class publisheradmin(admin.modeladmin):

list_display = ('name','country','state_province','city',)

admin.site.register(author)

admin.site.register(authordetail)

admin.site.register(book)

admin.site.register(publisher,publisheradmin)

重新整理頁面出現如下介面:

當然顯示欄位是以英文出現的,這裡我們可以去models.py中修改,具體通過修改屬性欄位verbose_name的值來操作,預設是英文,修改如下:

class publisher(models.model):

name = models.charfield(max_length=30, verbose_name="名稱")

address = models.charfield("位址", max_length=50)

city = models.charfield("城市",max_length=60)

state_province = models.charfield("省份",max_length=30)

country = models.charfield("國家",max_length=50)

website = models.urlfield("**",)

2、使用register的裝飾器通過裝飾器將定義的出版商類publisher註冊到admin.register中,同時注釋掉#admin.site.register(publisher,publisheradmin)

from django.contrib import admin

from hello.models import *

# register your models here.

@admin.register(publisher) 

class publisheradmin(admin.modeladmin):

list_display = ('name','country','state_province','city',)

admin.site.register(author)

admin.site.register(authordetail)

admin.site.register(book)

#admin.site.register(publisher,publisheradmin)

方法1和2效果一樣,但是方法2相對簡單一點

三、掌握一些常用的設定技巧

list_display:指定要顯示的字段

search_fields:指定搜尋的字段

list_filter:指定列表過濾器

ordering:指定排序字段

from django.contrib import admin

from hello.models import *

# register your models here.

@admin.register(publisher)

class publisheradmin(admin.modeladmin):

list_display = ('name','country','state_province','city',)

search_fields = ('name',)

list_filter= ('city',)

ordering=('id')

admin.site.register(authordetail)

admin.site.register(book)

顯示如下:

fields\exclude:指定編輯表單需要編輯\不需要編輯的字段

重新整理頁面效果就如下所示

如果對不編輯的選單做限制,可以用exclude,這裡把fields注釋,用exclude來設定,出現效果剛好相反

fieldsets:設定分組表單

更多高階使用的功能將在《django高階》課程裡介紹,另外,值得注意的是,django admin更適合開發人員來使用,終端使用者來使用的話使用者體驗還不是很好

Django2 0 admin基礎介紹

官方文件參考 django的強大之處之一就是提供了便利的後台站點,在我們剛開始建立這個專案時,他就將這些配置好了。如果你在建立專案時,沒有選擇預設的專案模板,你就需要手動做如下操作。在你的模板配置的options屬性中新增如下 django.contrib.auth.context processo...

Django的Admin站點管理

內容發布 負責新增 修改 刪除內容 公告訪問 在專案的根目錄下,執行命令 python manage.py createsuperuser 依次輸入使用者名稱 郵箱 密碼 密碼不能太複雜 修改setting.py language code zh hans time zone asia shangh...

Django中Admin站點的使用

使用admin站點 django能夠根據定義的模型類自動地生成管理頁面 建立超級管理員 python manage.py createsuperuser 建立使用者名稱 密碼 郵箱 開啟瀏覽器,在位址列中輸入如下位址後回車 輸入前面建立的使用者名稱 密碼完成登入 登入成功後介面如下 但是並沒有我們自...