1. 程式人生 > >django1.9+xadmin設定主題功能失敗的解決方法(含xadmin的原始碼下載地址)

django1.9+xadmin設定主題功能失敗的解決方法(含xadmin的原始碼下載地址)

PythonWeb專案環境:

1.django1.9

2.原始碼安裝xadmin。下載地址:https://github.com/sshwsfc/xadmin

在該環境下設定:

class BaseSetting(object):
    #設定主題功能
    enable_themes = True
    use_bootswatch = True
無法選擇主題。

解決方法:

環境:
python 2.7
django 1.9
xadmin採用原始碼的方式引入到專案中

在xadmin使用的過程中,設定“use_bootswatch = True”,企圖調出主題選單,顯示更多主題。然而設定了後,發現主題還是預設和bootstrap2,深入跟蹤原始碼,發現/xadmin/plugins/themes.py下的

block_top_navmenu

方法,當use_bootswatch 為True的時候,就會使用httplib2去

http://bootswatch.com/api/3.json

網址獲取主題選單項。但是使用瀏覽器開啟這個網址,http會被替換成https的。httplib2訪問這個https的網址,就會報錯。報錯資訊為:

[SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure 

但是這個報錯資訊,不知道為嘛,沒顯示在後臺...

httplib2訪問這個網址,我沒試驗成功,於是我使用requests庫來替代httplib2.
1.安裝requests

pip install requests

2./xadmin/plugins/themes.py 引入requests

import requests

3.修改block_top_navmenu方法:
 

    defblock_top_navmenu(self, context, nodes):

        themes = [
            {'name': _(u"Default"), 'description': _(u"Default bootstrap theme"), 'css': self.default_theme},
            {'name': _(u"Bootstrap2"
), 'description': _(u"Bootstrap 2.x theme"), 'css': self.bootstrap2_theme}, ] select_css = context.get('site_theme', self.default_theme) if self.user_themes: themes.extend(self.user_themes) if self.use_bootswatch: ex_themes = cache.get(THEME_CACHE_KEY) if ex_themes: themes.extend(json.loads(ex_themes)) else: ex_themes = [] try: flag = False#假如為True使用原來的程式碼,假如為Flase,使用requests庫來訪問 if flag: h = httplib2.Http() resp, content = h.request("http://bootswatch.com/api/3.json", 'GET', '', headers={"Accept": "application/json", "User-Agent": self.request.META['HTTP_USER_AGENT']}) if six.PY3: content = content.decode() watch_themes = json.loads(content)['themes'] else: content = requests.get("https://bootswatch.com/api/3.json") if six.PY3: content = content.text.decode() watch_themes = json.loads(content.text)['themes'] ex_themes.extend([ {'name': t['name'], 'description': t['description'], 'css': t['cssMin'], 'thumbnail': t['thumbnail']} for t in watch_themes]) except Exception as e: print(e) cache.set(THEME_CACHE_KEY, json.dumps(ex_themes), 24 * 3600) themes.extend(ex_themes) nodes.append(loader.render_to_string('xadmin/blocks/comm.top.theme.html', {'themes': themes, 'select_css': select_css}))

該解決方法的原文連結:https://my.oschina.net/u/2396236/blog/1083251

相關推薦

django1.9+xadmin設定主題功能失敗解決方法xadmin原始碼下載地址

PythonWeb專案環境: 1.django1.9 2.原始碼安裝xadmin。下載地址:https://github.com/sshwsfc/xadmin 在該環境下設定: class BaseSetting(object): #設定主題功能 enab

Android 使用shareSDK進行第三方登入失敗解決方法微信,微博,qq

這幾天在搞第三方登入,由於ios版本的要早於android版,所以各大平臺上的賬號都是註冊稽核好的。 登入到平臺,新增android版本,加入shareSDK,原本想著很輕鬆,誰知道一測試全部失敗,都不能登入。 驗證了新增流程,驗證了各大平臺的key  都沒有問題。 於是去

Windows10安裝SQL server 2016/2014 失敗解決方法 錯誤程式碼: 0x851A0019

最近想學資料庫,但是在安裝SQL2014時總是失敗,原因是  ( 錯誤程式碼: 0x851A0019)找不到資料庫引擎啟動控制代碼!網上找了很多解決方法都無效。我以為是應為Win10系統的原因,就裝了SQL2016但是依然因同樣的原因而失敗,直到我看到這個部落格:http

Anaconda安裝三方包失敗解決方法比如seq2seq,jieba等第三方包

       Anaconda“Anaconda Prompt”指令conda 只能安裝python的官方包,而如同jieba,itchat等第三方包要使用pip去安裝。       Anconda安裝指令順序:       1. 首先採用指令:conda insta

不能開啟到主機的連線,在埠1521:連線失敗解決方法修改遠端桌面連線埠

1、修改遠端桌面連線埠   遠端桌面終端服務預設埠為“3389”,為防止他人進行惡意連線,就需要對預設埠進行更改。對此可開啟登錄檔編輯器,依次展開“HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\Terminal S

頁面切換語言的解決方法偏向小站,靜態頁面

首先在html結構中,把需要轉換的結構都加上類名,最好加在含有 文字的最近的父級上,因為我們要利用文字節點來替換。 然後構造出類似json這種感覺的資料,方便替換操作。還有宣告一個變數flag,記錄當前使用的什麼語言。 var flag = 'cn'; var lan

JUnit除錯時出現錯誤 Failed to load ApplicationContext 的解決方法不一定適合所有人

在我寫一個小型的ssm框架的系統是,除錯執行出現如下結果: 九月 01, 2017 3:56:28 下午 org.springframework.test.context.support.DefaultTestContextBootstrapper getDefaultTe

【Redhat7.0】yum makecache報錯的解決方法巨坑!!!

本來是想更換yum源,然後就刪除了linux中 /etc/yum.repos.d除CentOS-Base.repo檔案以外的所有檔案 首先,根據http://mirrors.163.com/.help/centos.html指示備份 mv /etc/

百度ueditor圖片上傳到OSS問題解決下載原始碼下載地址

網路上面的例子有很多也比較雜:富文字編輯器基本都可以上傳圖片到阿里雲OSS伺服器上。用ueditor 點選單張上傳我大永州的早晨,1.這個時候看debug圖片是儲存在本地路徑下面的這樣存一重新整理就沒了,我們要存到oss伺服器上面2.十分關鍵的一步regex這一步匹配本地目錄

Ubuntn系統忘記密碼的解決方法虛擬機器下同樣處理

不知道你有沒有遇到過忘記了ubuntn系統密碼的情況,反正我都了,一段時間沒用就很容易忘記密碼的,此時無奈只能修改密碼了!下面分享一個簡單實用的方法: 版本號為: (我用的是V-BOX虛擬機器安裝的ubuntn作業系統) 1、重啟ubuntu系統,開機時長按shift按鍵進入GRUB選單,選擇第二個

VS2013開啟改變路徑之後的解決方案opencv以及屬性表

最近遇到這樣的一個問題,我將一個C++解決方案(用到opencv庫,並添加了屬性表)的整個資料夾複製到另外一個路徑下面,在用VS2013開啟.sln的時候遇到了一些問題。 下面是具體的情況: 在遇到這個問題的時候,我先是寫了一個最簡單的程式進行測試: 1、對於最最普通的情

有關OJ中PE的一些解決方法持續更新。。。

大家在打OJ時應該嚐嚐遇到這樣的問題:自己的程式輸入輸出明明都是對的,可是就是不能通過,有的是WA,大多數都是PE。 PE也就是Presentation Error,輸出的格式有問題,一般都是由於輸出中間有些空格或者空行被我們忽視了造成的。還有一些WA在自己環境下命令列輸入

Linux使用PAM鎖定多次登陸失敗的使用者重置錯誤次數

修改如下檔案: /etc/pam.d/sshd    (遠端ssh) /etc/pam.d/login    (終端) 在第一行下即#%PAM-1.0的下面新增: auth    required    pam_tally2.so    deny=3    unlock_

MySQL之——MySQL遠端連線丟失問題解決方法Lost connection to MySQL server

遠端連線mysql是總是提示: Lost connection to MySQL server at ‘reading initial communication packet', system error: 0很明顯這是連線初始化階段就丟失了連線的錯誤。 google

WIN8下VC6單步調報錯解決方法(OLE32.DLL): 0xC0000005: Access Violation

win8下安裝vc6之後單步除錯提示 First-chance exception in 程式名.exe (OLE32.DLL): 0xC0000005: Access Violation 做如下設定即可解決: 1、選單Tools->Options中的Debug,Di

listView拓展的時候出現的拓展頁面顯示不全解決方法只顯示一條資料

自定義listView ,重寫onMeasure 方法 @Override protected void onMeasure(int widthMeasureSpec, int heightMeas

Win10 計劃任務失敗以及PIN碼設定登入失敗解決方法

背景 我在電腦上一直有設定一些計劃任務,用途包括開機時自動登入校園網,定時關機等。一直執行的好好的。中途去參加數模,把電腦給我女朋友用了。然後就悲劇了。只想立刻知道怎麼解決的,直接翻到最後面的問題解決就可以了。 問題描述 設定好的計劃任務全部不執行了 登入介面

百度編輯器在服務器置頂路徑 解決上傳圖片創建目錄失敗方法Thinkphp

插入 borde images tor true ges border name 線上 1、設置文件夾權限2、修改/* 前後端通信相關的配置,註釋只允許使用多行方式 */{ /* 上傳圖片配置項 */ "imageActionName": "uploadimag

Ubuntu使用SSH共享失敗解決方法

1.5 3.1 inux -1 hab 動態ip 通過 安裝 9.png VMware上Ubuntu使用SSH共享失敗,出現以下錯誤: The host‘192.168.59.128‘is unreachable, the host may be down,or there

ORA-12638: 身份證明檢索失敗 解決方法

nav ref fig tle mage 連接 man 技術分享 rac 用PL/SQL或Navicat連接本地或遠程Oracle數據庫的時候報錯:ORA-12638: 身份證明檢索失敗 解決方法: 開始 -> 所有程序 -> Oracle - Oracle_