xadmin學習筆記(二)——改造Django教程實例(1)


前言

  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之間的區別。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM