1. 程式人生 > >django admin站點配置使用

django admin站點配置使用

Django的管理模組,需要按照如下步驟操作:

  1. 管理介面本地化
  2. 建立管理員
  3. 註冊模型類
  4. 自定義管理頁面

一、管理介面本地化

在setting.py中設定語言和時區

LANGUAGE_CODE = 'zh-hans' # 使用中國語言
TIME_ZONE = 'Asia/Shanghai' # 使用中國上海時間

二、建立超級管理員

python manage.py createsuperuser

輸入使用者名稱、密碼

開啟瀏覽器,輸入地址回車:

http://127.0.0.1:8000/admin/

輸入使用者名稱密碼

登入成功後,並沒有我們自己應用的模型入口,接下來進行下面的操作

 

三、

三、註冊模型類

需要在應用中admin.py檔案中註冊,才可以在後臺管理中看到,並進行增刪改查

在booktest/admin.py檔案,加入如下程式碼:

from django.contrib import admin
from booktest.models import BookInfo,HeroInfo

admin.site.register(BookInfo)
admin.site.register(HeroInfo)

重新整理瀏覽器可以看到模型類BookInfo和HeroInfo的管理了。

四、定義與使用Admin管理類

Django提供的admin站點的展示效果可以通過自定義ModelAdmin類來控制。

定義管理類需要繼承admin.ModelAdmin類,如下

from django.contrib import admin

class BookInfoAdmin(admin.ModelAdmin):
    pass

使用管理類兩種方式:

1、註冊引數

admin.site.register(BookInfo,BookInfoAdmin)

2、裝飾器註冊

@admin.register(BookInfo)
class BookInfoAdmin(admin.ModelAdmin):
    pass

調整列表展示

1、頁大小,每頁中顯示多少條資料,預設為每頁顯示100條資料

list_per_page=100

1)開啟booktest/admin.py檔案,修改AreaAdmin類如下:

class BookInfoAdmin(admin.ModelAdmin):
    list_per_page = 2

2)在瀏覽器中檢視區域資訊的列表頁面,效果如下圖:

 

2 "操作選項"的位置

頂部顯示的屬性,設定為True在頂部顯示,設定為False不在頂部顯示,預設為True。

actions_on_top=True

底部顯示的屬性,設定為True在底部顯示,設定為False不在底部顯示,預設為False。

actions_on_bottom=False

3、列表中的列

屬性如下:

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

點選列頭可以進行升序或降序排列。

4、將方法作為列

列可以是模型欄位,還可以是模型方法,要求方法有返回值。

通過設定short_description屬性,可以設定在admin站點中顯示的列名。

方法列是不能排序的,如果需要排序需要為方法指定排序依據。

admin_order_field=模型類欄位

5、關聯物件

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

1)開啟booktest/models.py檔案,修改HeroInfo類如下:

class HeroInfo(models.Model):
    ...
    def read(self):
        return self.hbook.bread

    read.short_description = '圖書閱讀量'

2)開啟booktest/admin.py檔案,修改HeroInfoAdmin類如下:

class HeroInfoAdmin(admin.ModelAdmin):
    ...
    list_display = ['id', 'hname', 'hbook', 'read']

3)在瀏覽器中重新整理效果如下圖:

 

6 右側欄過濾器

屬性如下,只能接收欄位,會將對應欄位的值列出來,用於快速過濾。一般用於有重複值的欄位。

list_filter=[]

1)開啟booktest/admin.py檔案,修改HeroInfoAdmin類如下:

class HeroInfoAdmin(admin.ModelAdmin):
    ...
    list_filter = ['hbook', 'hgender']

2)在瀏覽器中重新整理效果如下圖:

 

7 搜尋框

屬性如下,用於對指定欄位的值進行搜尋,支援模糊查詢。列表型別,表示在這些欄位上進行搜尋。

search_fields=[]

1)開啟booktest/admin.py檔案,修改HeroInfoAdmin類如下:

class HeroInfoAdmin(admin.ModelAdmin):
    ...
    search_fields = ['hname']

2)在瀏覽器中重新整理效果如下圖: