自定義xadmin後臺首頁
登陸xadmin後臺,首頁預設是空白,可以自己新增小元件,xadmin一切都是那麼美好,但是新增小元件遇到了個大坑,快整了2個禮拜,最終實現想要的介面。初始的頁面如圖:
本機後臺顯示這個頁面正常,docker中新增小元件點下一步按鈕一點就崩,如上圖,日誌檔案沒有error資訊。第一步排錯是不是依賴或者檔案缺失,建個乾淨沙盒從版本庫把程式碼拉下,安裝requirements,執行沒問題。第二步排錯,docker例項中pip list跟本機一一對應,包括版本號。百思不得其解。
忍受不了,首頁空蕩蕩的,一點就崩的狀態。實現如下介面:
伺服器監控首頁——實現步驟:
一、從git下載pydash-django-app壓縮包,下載地址:https://gitlab.com/k3oni/pydash-django-app/tree/master
二、解壓,套路同xadmin,把pydash這個目錄拷貝到extra_apps下,把pydash/static目錄移到xadmin/static/pydash下,結構如圖:
三、在settings INSTALLED_APPS加入pydash,並配置
STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.AppDirectoriesFinder', ) TIME_JS_REFRESH = 30000 #30 seconds TIME_JS_REFRESH_LONG = 120000 #120 seconds TIME_JS_REFRESH_NET = 2000 #2 seconds VERSION = '1.4.6'
四、xadmin/views/base.py 465行後 新增路由跳轉
# 新增pydash url needRedit = False needRedit_url = '/' if self.request.get_full_path() == '/xadmin/': needRedit = True needRedit_url = '/info/main/' else: pass context.update({'menu_template': self.menu_template, 'nav_menu': nav_menu, 'site_title': self.site_title, 'site_footer': self.site_footer, 'breadcrumbs': self.get_breadcrumb(), 'needRedit': needRedit, # 另加 'needRedit_url': needRedit_url })
五、xadmin/templates/xadmin/base_site.html巢狀pydash主頁
六、配置路由
伺服器監控首頁在xadmin首頁渲染出來了,發到docker後又是一臉懵,有幾個圖不顯示,無耐,重新開始調整思路。
在後臺登陸介面攔截登陸跳轉的url,改為自己想要的model的url。
預設顯示任何一個model資料——步驟:
一、xadmin/views/__init__.py檔案檢視url對映,檢視IndexView和LoginView
二、xadmin/views/website.py 修改上下文渲染的app url為你自己想渲染的
三、同文件下修改IndexView繼承LoginView,註釋之前的IndexView,在LoginView下面加上如下幾行程式碼:
實現xadmin點登陸後臺,顯示你定義的任一model資料,url變化為:127.0.0.1:8000/xadmin/(登陸介面)--> 點登陸 --> 127.0.0.1:8000/xadmin/sms/smslog/(主頁面),url刪除sms/smslog/,變為127.0.0.1:8000/xadmin/,跳轉到登陸介面。