前言
xadmin是基於Python和Django的管理框架,想要能夠熟練使用,學習Django是必須的。在學習Django的過程中,不妨用xadmin來驗證下新的效果是怎樣的。本文就是在學習Django官方文檔的Tutorial的過程中進行的摸索。
FAQ 1:如何修改xadmin的site-title和site-footer?
site-title和site-footer都是設置在base_site.html模板頁面中的,可以從xadmin的安裝目錄下的xadmin\templates\xadmin目錄中找到
從圖片中可以看出來,site_title和site_footer都是可以通過程序設置的變量,那么想要設置這兩個變量要怎么做呢?只要在adminx.py文件中添加GlobalSetting類,具體代碼如下:
1 class GlobalSetting(object): 2 #設置base_site.html的Title 3 site_title = 'My Title' 4 #設置base_site.html的Footer 5 site_footer = 'My Footer' 6 xadmin.site.register(views.CommAdminView, GlobalSetting)
插入這段代碼之后,我們就修改了site-title和site-footer。查看下修改后效果:
FAQ 2:如何修改xadmin的菜單設置?
默認情況下xadmin提供了一套菜單的設置規則,使用SortedDict類型進行存儲, Django的官方文檔上描述SortedDict的排序順序是保持插入順序的,所以菜單的顯示與adminx.py文件中注冊的順序有關系,通過調整注冊順序可以改變菜單的顯示順序。
但是僅僅做到這一步並不能滿足我們的要求,我們希望能夠根據自己的需要來更改菜單的標題、圖標、控制菜單的權限,甚至菜單的路由,那么我們就可以使用下面的設置來進行修改。
1 class GlobalSetting(object): 2 #菜單設置 3 def get_site_menu(self): 4 return ( 5 {'title': '投票管理', 'perm': self.get_model_perm(Poll, 'change'), 'menus':( 6 {'title': '投票', 'url': self.get_model_url(Poll, 'changelist')}, 7 {'title':'選票','url': self.get_model_url(Choice, 'changelist')} 8 )}, 9 ) 10 xadmin.site.register(views.CommAdminView, GlobalSetting)
仍然是在adminx.py文件中進行設置,設置后,我們可以得到如下的菜單展示。
關於菜單設置的更詳細的說明,大家可以參考xadmin的官方文檔的FAQ:如何定制系統菜單。
PS:今天通過自己的摸索並查看Django官方文檔和xadmin官方文檔學習了很多內容,非常值得高興的是還幫助朋友解決了問題,覺得學習的很有價值。對於和我一樣沒有Django基礎又想學習xadmin的朋友,可以邊看Django文檔,邊用xadmin實現,然后去查看xadmin中的代碼,雖然感覺吃力,但是會有收獲,也能認識到xadmin和Django自帶的admin之間的區別。