Django Admin
Django Admin 是內建的資料管理後台,只要把 Model 註冊進去,就能自動產生新增、修改、刪除、搜尋、篩選的介面,不需要自己刻一套後台系統。這也是 Django「Batteries included」哲學的代表功能之一:多數框架要另外裝套件才有的後台管理,Django 內建就有。
官方文件:The Django admin site。
使用前的準備:建立管理員帳號
後台需要一組管理員(superuser)帳號才能登入:
基本用法:註冊 Model
在 App 的 admin.py 中註冊 Model,只需要一行程式碼:
# admin.py
from django.contrib import admin
from myapp.models import Author
admin.site.register(Author)
設定完成、啟動開發伺服器(python manage.py runserver)後,用剛才建立的帳號密碼登入 http://127.0.0.1:8000/admin,就能看到 Author 出現在後台,可以直接新增、修改、刪除資料。
自訂顯示方式:ModelAdmin
預設的後台介面很陽春(列表只顯示物件的字串表示法)。要客製顯示的欄位、搜尋框、篩選器等,需要另外定義一個 ModelAdmin 類別,並在註冊時一併指定:
# admin.py
from django.contrib import admin
from myapp.models import Post
class PostAdmin(admin.ModelAdmin):
list_display = ("title", "author", "created_at") # 列表要顯示的欄位
list_filter = ("author",) # 側邊篩選欄位
search_fields = ("title", "content") # 可搜尋的欄位
admin.site.register(Post, PostAdmin)
常用的 ModelAdmin 屬性:
| 屬性 | 作用 |
|---|---|
list_display |
列表頁要顯示哪些欄位(預設只顯示物件本身) |
list_filter |
側邊要提供哪些欄位的篩選器 |
search_fields |
開啟搜尋框,並指定要搜尋哪些欄位 |
ordering |
列表預設的排序方式 |
下一步
後台管理只給管理員使用;如果要讓一般使用者也能註冊、登入網站,請看 使用者驗證。