27 Django高階 Admin站點

2021-09-26 14:44:14 字數 3299 閱讀 6309

通過使用startproject建立的專案模版中,預設admin被啟用

1.建立管理員的使用者名稱和密碼

python manage.py createsuperuser
然後按提示填寫使用者名稱、郵箱、密碼

2.在應用內admin.py檔案完成註冊,就可以在後台管理中維護模型的資料

from django.contrib import admin

from models import

*admin.site.register(heroinfo)

modeladmin類是模型在admin介面中的表示形式

定義:定義乙個類,繼承於admin.modeladmin,註冊模型時使用這個類

class

heroadmin

(admin.modeladmin):.

..

通常定義在應用的admin.py檔案裡

使用方式一:註冊引數

admin.site.register(heroinfo,heroadmin)
使用方式二:註冊裝飾器

@admin.register(heroinfo)

class

heroadmin

(admin.modeladmin)

:

通過重寫admin.modeladmin的屬性規定顯示效果,屬性主要分為列表頁、增加修改頁兩部分

2.1 列表頁選項

「操作選項」的位置

actions_on_top、actions_on_bottom:預設顯示在頁面的頂部

class

heroadmin

(admin.modeladmin)

: actions_on_top =

true

actions_on_bottom =

true

list_display

在models.py檔案中

from django.db import models

from tinymce.models import htmlfield

from django.utils.html import format_html

class

heroinfo

(models.model)

: hname = models.charfield(max_length=10)

hcontent = htmlfield(

) isdelete = models.booleanfield(

)def

hcontent

(self)

:return format_html(self.hcontent)

在admin.py檔案中

class

heroadmin

(admin.modeladmin)

: list_display =

['hname'

,'hcontent'

]

在models.py中heroinfo類的**改為如下:

defhcontent

(self)

:return format_html(self.hcontent)

hcontent.admin_order_field =

'hname'

在models.py中為heroinfo類增加方法hname:

defhname

(self)

:return self.hname

hname.short_description =

'姓名'

hcontent.short_description =

'內容'

在admin.py頁中註冊

class

heroadmin

(admin.modeladmin)

: list_display =

['hname'

,'hcontent'

]

list_filter

class

heroadmin

(admin.modeladmin):.

..list_filter =

['hname'

,'hcontent'

]

list_per_page

每頁中顯示多少項,預設設定為100

class

heroadmin

(admin.modeladmin):.

..list_per_page =

10

search_fields

class

heroadmin

(admin.modeladmin):.

..search_fields =

['hname'

]

2.2 增加與修改頁選項

fields:顯示欄位的順序,如果使用元組表示顯示到一行上

class

heroadmin

(admin.modeladmin):.

..fields =[(

'hname'

,'hcontent'

)]

fieldsets:分組顯示

class

heroadmin

(admin.modeladmin):.

..fieldsets =((

'base',)

,('other',)

)

fields與fieldsets兩者選一

class

heroinline

(admin.tabularinline)

: model = heroinfo

class

bookadmin

(admin.modeladmin)

: inlines =

[ heroinline,

]

'dirs'

:[os.path.join(base_dir,

'templates')]

,

django新增admin管理

admin 也是乙個 跟我們建立的 沒什麼兩樣,只不過它是系統所有的。如果要使用的話,按下面的步驟就可以了。1.在settings.py 的元組裡新增一行 django.contrib.admin 每次新增新應用後,都要執行一下 syncdb 建立資料表。但是我們還要用 admin 來管理其他應用 ...

Django學習筆記《admin》

主要內容有 自定義表單的域 polls admin.py from django.contrib import admin from models import question class questionadmin admin.modeladmin fields pub date questio...

django給admin增加功能

1.django project路徑 d studio django web mybase d studio django web mybase beta 步驟 a.從標準模板庫中拷貝至當前project下template子目錄 注意admin beta 檢視該模板發現逐級擴充套件多個html模板,...