Admin站點的使用 總結

2021-10-09 08:14:25 字數 4085 閱讀 2687

admin站點

開啟:python manage.py createsuperuser 

按提示填寫使用者名稱郵箱 密碼

在應用的admin.py中註冊模型類 

例: 開啟booktest/admin.py檔案註冊地區模型

from django .contrib import admin

from models import *

admin.site.register(areainfo)

輸入:

按提示填寫使用者名稱密碼

登陸成功後可以看到arealngos 可以進行增加修改 刪除 查詢

控制管理頁展示

類modeladmin可以控制模型介面的展示(列表頁、新增修改頁的展示方式)

在booktest/admin.py中,註冊模型類前定義管理類areaadmin        

class areaadmin(admin.modeladmin):

pass

管理類有兩種使用方式(1註冊引數2裝飾器)

註冊引數:開啟booktest/admin.py檔案 

**:  admin.site.register()

裝飾器:開啟booktest/admin.py檔案 在管理器上註冊模型類**:

@admin.register(areainfo)

class areaadmin(admin.modeladmin):

pass

列表頁選項

頁大小每頁顯示多少條資料 預設100

開啟booktest/admin.py檔案 修改areaadmin類 (每頁顯示10條)                 

classareaadmin(admin.modeladmin):

list_per_page= 10

「操作選項」的位置

頂部顯示的屬性,設定為true(預設)在頂部顯示,設定為false不在頂部顯示

actions_on_top=true
底部顯示的屬性,設定為true在底部顯示,設定為false(預設)不在底部顯示

actions_on_bottom=false
開啟booktest/admin.py檔案,修改areaadmin類如下

classareaadmin(admin.modeladmin):

actions_on_top =true 

actions_on_bottom = true

列表中的列

屬性如下

list_display=[模型欄位1,模型欄位2,...]

開啟booktest/admin.py檔案,修改areaadmin類如下

classareaadmin(admin.modeladmin):

list_display = ['id','atitle']

列標題

列標題預設為屬性或方法的名稱,可以通過屬性設定

需要先將模型字段封裝成方法,再對方法使用這個屬性,

模型字段不能直接使用這個屬性

short_description='列標題'

開啟booktest/models.py檔案,修改areainfo類如下

classareainfo(models.model):

title.short_description='區域名稱'

關聯物件

無法直接訪問關聯物件的屬性或方法,可以在模型類中封裝方法,訪問關聯物件的成員

開啟booktest/models.py檔案,修改areainfo類如下

classareainfo(models.model):

def parent(self):

return self.aparent.atitle

parent.short_description='父級區域名稱'

開啟booktest/admin.py檔案,修改areaadmin類如下

classareaadmin(admin.modeladmin):

list_display =['id','atitle','title','parent']

搜尋框

屬性如下,用於對指定欄位的值進行搜尋,支援模糊查詢

search_fields=

列表型別,表示在這些欄位上進行搜尋

開啟booktest/admin.py檔案,修改areaadmin類如下

classareaadmin(admin.modeladmin):

search_fields=['atitle']

中文標題

開啟booktest/models.py檔案,修改模型類,為屬性指定verbose_name引數,即第乙個引數

classareainfo(models.model):

atitle=models.charfield('標題',max_length=30)#名稱

顯示字段順序

開啟booktest/admin.py檔案,修改areaadmin類如下

classareaadmin(admin.modeladmin):

fields=['aparent','atitle']

在下拉列表中輸出的是物件的名稱,可以在模型類中定義str方法用於物件轉換字串

開啟booktest/models.py檔案,修改areainfo類,新增str方法

classareainfo(models.model):

def __str__(self):

return self.atitle.encode('utf-8')

分組顯示

屬性如下

fieldset=(

('組1標題',),

('組2標題',),    )

開啟booktest/admin.py檔案,修改areaadmin類如下

classareaadmin(admin.modeladmin):

# fields=['aparent','atitle']

fieldsets = (

('基本', ),

('高階', )   )

注意: fields 與fieldsets兩者選一使用

關聯物件

在一對多的關係中,可以在一端的編輯頁面中編輯多端的物件,嵌入多端物件的方式包括**、塊兩種

子類tabularinline:以**的形式嵌入

子類stackedinline:以塊的形式嵌入

開啟booktest/admin.py檔案,建立areastackedinline類

classareastackedinline(admin.stackedinline):

model = areainfo#關聯子物件

extra = 2#額外編輯2個子物件

開啟booktest/admin.py檔案,修改areaadmin類如下

classareaadmin(admin.modeladmin):

inlines = [areastackedinline]

可以用**的形式嵌入

開啟booktest/admin.py檔案,建立areatabularinline類

classareatabularinline(admin.tabularinline):

model = areainfo#關聯子物件

extra = 2#額外編輯2個子物件

開啟booktest/admin.py檔案,修改areaadmin類如下

classareaadmin(admin.modeladmin):

inlines = [areatabularinline]

Admin站點的使用 總結

admin站點 開啟 python manage.py createsuperuser 按提示填寫使用者名稱郵箱 密碼 在應用的admin.py中註冊模型類 例 開啟booktest admin.py檔案註冊地區模型 from django contrib import admin from mod...

Django中Admin站點的使用

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

admin站點管理

admin中的顯示 class saltstack groupadmin admin.modeladmin list display group name salt minion id 這裡需要注意的是,salt minion id是我們要在前端展示的內容,自己定義的 def salt minion...