該文章僅供學習,如有錯誤,歡迎指出
專案配置過程中,若有錯誤,請滑倒文章底部有部分錯誤解決方案。也可在底下留言
之前在群裡面看大佬們”炫技”,有提到Django的Admin管理系統
這裡提到了一個app叫做 xadmin
於是我想嘗試一下
話不多說上手
下載Xadmin
網址http://www.xadmin.io/ (官網對他的介紹是一款基於bootstrap3的強大的django外掛系統)
很可惜,Django的官網似乎已經停止了維護
但是github上依舊有他的專案,地址https://github.com/sshwsfc/xadmin
clone一下到自己的桌面上
……
於是我們就得到了一個xadmin-master的包
其餘的依賴
django>=2
django-crispy-forms>=1.6.0
django-import-export>=0.5.1
django-reversion>=2.0.0
django-formtools==2.0
future==0.15.2
httplib2==0.9.2
six==1.10.0
複製程式碼
直接pip安裝 很簡單不麻煩
文件在哪裡?
https://xadmin.readthedocs.io/en/latest/quickstart.html
應用
建立一個django專案
myxadmin是我的專案包
apps是用於存放我所建立的app的資料夾
extra_apps用於存放第三方app的資料夾,我們將xadmin資料夾放到該資料夾下面
這裡我們需要注意的一個問題是django的流程
當我們訪問http://127.0.0.1:8000/admin的時候,django會先進入我們的配置
發現我們的admin的時候進入
但這裡我們需要將xadmin來代替admin
於是我們要這裡做
1.將自己建立的所有app下的admin.py全部註釋掉 && 並且你你可以在你的專案下建立一個adminx.py檔案
那麼你所要註冊的模型類就不再是寫在molde類下面,而是adminx.py下面
2.在setting.py配置下,插入如下內容,都是用於美化我們的介面
3.將專案環境加入到系統環境中
4.將admin變成xadmin
5.python manage.py runserver
的確,相對於之前的admin畫面,這個後臺相對於更加美觀
註冊我們的模型類
from .models import Student
import xadmin
class StudnetAdmin(object):
list_display = [`title`,`num`] #設定資料表在後臺顯示的欄位
list_filter = (`country`,) #可過濾欄位
search_fields = (`name`, `city`,) #可搜尋欄位
list_editable= [`is_hot`], #可編輯
style_fields = {"goods_desc": "ueditor"} #繼承ueditor
xadmin.site.register(Student,StudnetAdmin)
複製程式碼
我們需要注意的是,StudentAdmin我們引用的不再是admin.AdminMOdel,而是object
千萬不要因為沒有智慧提示就以為沒有這類屬性,還是可以應用的
哇!這個主題真醜
如果你一點都不專一,想要看看xadmin下不同的主題,那麼在你的xadmin.py下進行基本設定的修改
class BaseSetting(object):
enable_themes = True #是否可以切換主題
use_bootswatch = True #更多的主題功能
xadmin.site.register(xadmin.views.BaseAdminView,BaseSetting)
複製程式碼
當然如果你有多個app,你也只需要在一個app下修改就行了。
什麼 ! 名稱跟頁尾也醜? 改啊!
class GlobaSetting(object):
site_title = "Alpaca" #設定標題
site_footer = "Alpaca的公司" #設定頁尾
menu_style = "accordion" #將左邊的列表轉換成可縮排形式
xadmin.site.register(xadmin.views.CommAdminView,GlobaSetting)
複製程式碼
可以,帥爆了
應用列表為英文太難看!
/polls/apps.py
from django.apps import AppConfig
class PollsConfig(AppConfig):
name = `polls`
verbose_name ="應用"
複製程式碼
/polls/init.py
default_app_config = "polls.apps.PollsConfig"
複製程式碼
報錯請看這裡
因為我之前下的似乎是版本的原因,這裡出現了一個錯誤
導致我無法進入超級使用者
這裡我們看他的報錯,並且進入到該行
將程式碼如下修改,因為之前匹配的是
既然
匹配失敗,那我們程式設計`><`,就可以了