跳轉到內容

RapidSMS 開發人員指南/自定義管理員 UI

來自華夏公益教科書

管理員使用者介面是 Django 的一項功能。它會自動從您的模型建立管理員 UI,允許註冊使用者

  • 新增模型記錄
  • 編輯模型記錄
  • 刪除模型記錄

在 RapidSMS 中啟用 Django 管理

[編輯 | 編輯原始碼]

由於 RapidSMS 不提供對 Django settings.py 檔案的訪問許可權,因此我們需要手動啟用 Django 管理(無論我們是否需要為自己的模型提供管理支援)。

最簡單的方法是包含來自 RapidSMS 儲存庫的 admin 應用。請參閱安裝

然後,您可以在 Web 伺服器上的 /admin/ URL 訪問 Django 管理。使用您在第一次 syncdb 時使用的憑據登入。

新增 Django 管理支援

[編輯 | 編輯原始碼]

在您的應用中,建立一個名為 admin.py 的檔案。

admin.py 必須包含以下最少語句才能正常工作

#!/usr/bin/env python
# encoding=utf-8

from django.contrib import admin
from myapp import models

admin.site.register(MyModel)

在本例中,我們正在為我們 myapp 應用的模型 MyModel 啟用 Django 管理。

您現在可以從管理員 UI 編輯您的模型資料。

改進模型管理員 UI

[編輯 | 編輯原始碼]

大多數 RapidSMS 應用使用的一個 Django 功能是模型的自定義管理員。

它允許內容過濾、增強顯示或搜尋等功能。

示例

#!/usr/bin/env python
# encoding=utf-8

from django.contrib import admin
from models import Person, Activity

class PersonAdmin(admin.ModelAdmin):

    list_display = ('name', 'age', 'sex_name', 'activity', 'entered_on')
    list_filter = ('activity', 'sex')
    ordering = [('-entered_on')]
    search_fields = ['first_name', 'last_name', 'activity__name']

admin.site.register(Person, PersonAdmin)

此示例為 Person 模型註冊了一個自定義管理員模型。

  • 記錄列表將顯示 list_display 元組中的屬性。
  • 記錄列表可以透過活動或性別進行過濾。
  • 記錄列表預設情況下將按 entered_on(降序)排序
  • 記錄列表將顯示一個搜尋框,可以在給定的欄位中進行搜尋。
[編輯 | 編輯原始碼]

編碼標準和文件 · Web 檢視和模板

華夏公益教科書