Django 為大家提供了一個完善的後臺管理系統—admin,但是這個後臺管理系統總體來說不太適合國人的習慣,所以有大神就使用 bootstrap 和 jQuery,為我們開發了一個第三 方的 Django 後臺管理系統—xadmin,這個界面的友好度比較高,目前企業的使用頻率比較高,我們來學習一些 ...
Django 為大家提供了一個完善的後臺管理系統—admin,但是這個後臺管理系統總體來說不太適合國人的習慣,所以有大神就使用 bootstrap 和 jQuery,為我們開發了一個第三 方的 Django 後臺管理系統—xadmin,這個界面的友好度比較高,目前企業的使用頻率比較高,我們來學習一些它的使用吧。
一、下載安裝(tips:如安裝過程中出現3444錯誤,可在文章最後查看樓主親測可用的解決方案):
1、在虛擬環境下 使用 pip install 安裝:
通過此命令安裝,會同時安裝 Xadmin 所需的依賴庫:django-crispy-forms-1.6.1、django-formtools-2.0httplib2-0.9.2、以及 xadmin-0.6.1,
pip install django-xadmin
不過這種方式可能會出現編碼等問題,不推薦。
2、下載源碼安裝:首先下載源代碼,下載地址:https://github.com/sshwsfc/xadmin
可對源碼修改,體驗更新特性,推薦。
2.1 解壓縮後將名為 xadmin 的文件夾拷貝進項目根目錄下,當做一個模塊存在。
2.2 在 setting 文件中配置:
INSTALLED_APPS = [
...
'xadmin',
'crispy_forms',
'reversion',
]
2.3 配置主路由,取代 Django 預設的 admin::
from django.conf.urls import url from django.conf.urls import include # from django.contrib import admin # xadmin後臺管理系統主路由配置 import xadmin from xadmin.plugins import xversion xadmin.autodiscover() xversion.register_models() urlpatterns = [ ... # url(r'^admin/', admin.site.urls), url(r'^xadmin/', xadmin.site.urls), ]
2.4 同步資料庫
xadmin有建立自己的資料庫模型類,需要進行資料庫遷移
python manage.py makemigrations # 此句可以不用執行, xadmin已自動生成migrations文件 python manage.py migrate
2.5 創建超級用戶:
python manage.py createsuperuser
2.6 大功告成, 使用超級用戶準備登錄(公司項目基本不會給你管理員許可權,這裡只做演示用)。
2.7 登陸成功,訪問後臺,界面如下:
如果出現錯誤,可以使用如下命令升級
pip install --upgrade django-formtools
註意,升級的過程中,如果將 Django 也升級了,如果不想升級 Django 的話,卸載了重新安裝即可。
二 、 使用(後臺管理)
xadmin不再使用Django的admin.py,而是需要編寫代碼在adminx.py文件中。
xadmin的站點管理類不用繼承admin.ModelAdmin
,而是直接繼承object
即可。
站點的全局配置
import xadmin from xadmin import views from . import models class BaseSetting(object): """xadmin的基本配置""" enable_themes = True # 開啟主題切換功能 use_bootswatch = True xadmin.site.register(views.BaseAdminView, BaseSetting) class GlobalSettings(object): """xadmin的全局配置""" site_title = "xxxxxxxx" # 設置站點標題 site_footer = "xxxxxxx" # 設置站點的頁腳 menu_style = "accordion" # 設置菜單摺疊 xadmin.site.register(views.CommAdminView, GlobalSettings)View Code
站點Model管理
xadmin可以使用的頁面樣式控制基本與Django原生的admin一直。
list_display 控制列表展示的欄位
search_fields 控制可以通過搜索框搜索的欄位名稱,xadmin使用的是模糊查詢
list_filter 可以進行過濾操作的列
ordering 預設排序的欄位
readonly_fields 在編輯頁面的只讀欄位
exclude 在編輯頁面隱藏的欄位
list_editable 在列表頁可以快速直接編輯的欄位
show_detail_fileds 在列表頁提供快速顯示詳情信息
refresh_times 指定列表頁的定時刷新
list_export 控制列表頁導出數據的可選格式
show_bookmarks 控制是否顯示書簽功能
data_charts 控制顯示圖標的樣式
model_icon 控制菜單的圖標
View Code
最後附上一個樓主安裝遇到的一個小問題和解決辦法:
問題:python3安裝xadmin出現 UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 3444
解決辦法:
1、README.rst這個文件的編碼有問題,可是內容沒什麼重要的,可以直接到github上下載安裝包,然後新建一個txt空文件,把文件名改成 README.rst,替換原來的文件。
下載安裝包,下載zip壓縮文件,下載地址:
https://github.com/sshwsfc/xadmin
2、替換成功後,把壓縮包放到一個文件夾中,在命令視窗中進入存放壓縮包的文件下,執行pip命令。
參考資料:
xadmin 文檔:http://xadmin.readthedocs.io/en/docs-chinese/
xadmin 官網:http://sshwsfc.github.io/xadmin/
一身污濁、自得其樂