django.contrib.admin 是 Django 框架裡實作 CRUD 的重要元件。這個 admin 是一個獨立的 Django app,它允許對所有 Django 所支援的資料模型進行操作。因為它的功能強大,所以許多人希望為它延伸功能,好和自己寫的 app 結合在一起,相得益彰;最好是能夠無縫結合,那就太完美了。

卡難啦!Django admin CRUD 樣樣都行,還加上認證和權限管理,真要作到無縫結合,大概也會把 admin 的程式碼全翻過一遍了;這樣一搞,說不定也不必花多少力氣就能改出自己版本的 admin。而且 admin 的設計主要是針對 webmaster/superuser,雖然配有權限系統,但是該權限系統乃是 table-specific 而非 row-specific。也就是說,像本站這種 multi-user 系統,得要另外考慮權限的實作,不能使用內建的系統,使得無法將 admin 介面提供給終端使用者來使用。

其實稍微複雜一點的網頁程式系統大概就會是這種狀況。Django admin 還是很不錯的工具,但程式設計員不能在後台系統上偷懶。尤其現在網頁程式的設計趨勢是靠 ajax 把部分後台的功能作到前台,想要全靠 admin 提供後台管理功能也是有點不太實際的。

limodou[Django动态]newforms Admin分支开始了 也可以看到類似的想法。newforms 是 Django 邁向 1.0 的重要元件之一,以 newforms 重構 admin 或許是必然的一個步驟。然而,我想 admin 要從 webmaster 管理工具,改變成終端使用者工具的機會應該不大。畢竟即使在 newforms admin 的 "Would be nice, and we're going to try our hardest to get this in" goals 裡,至多也只有 "Give developers extra hooks" 這一項。

如果 Django 要有高度自訂的後台管理程式庫,可能不會以舊 admin 或 newforms admin 的形式出現吧。

Posted by yungyuc at 22:04, 0 comment, 0 trackback.
Change to page (10 entries in each page): 1
© hover year to navigate month: powered by django