8.Django之漂亮的Admin

Alpaca_發表於2019-03-04

該文章僅供學習,如有錯誤,歡迎指出

專案配置過程中,若有錯誤,請滑倒文章底部有部分錯誤解決方案。也可在底下留言

之前在群裡面看大佬們"炫技",有提到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專案

8.Django之漂亮的Admin

myxadmin是我的專案包

apps是用於存放我所建立的app的資料夾

extra_apps用於存放第三方app的資料夾,我們將xadmin資料夾放到該資料夾下面

這裡我們需要注意的一個問題是django的流程

當我們訪問http://127.0.0.1:8000/admin的時候,django會先進入我們的配置

8.Django之漂亮的Admin

發現我們的admin的時候進入

但這裡我們需要將xadmin來代替admin

於是我們要這裡做

1.將自己建立的所有app下的admin.py全部註釋掉 && 並且你你可以在你的專案下建立一個adminx.py檔案

那麼你所要註冊的模型類就不再是寫在molde類下面,而是adminx.py下面

2.在setting.py配置下,插入如下內容,都是用於美化我們的介面

8.Django之漂亮的Admin

3.將專案環境加入到系統環境中

8.Django之漂亮的Admin

4.將admin變成xadmin

8.Django之漂亮的Admin

5.python manage.py runserver

8.Django之漂亮的Admin

的確,相對於之前的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下修改就行了。

什麼 ! 名稱跟頁尾也醜? 改啊!

8.Django之漂亮的Admin
8.Django之漂亮的Admin

class GlobaSetting(object):
    site_title = "Alpaca"   #設定標題
    site_footer = "Alpaca的公司"  #設定頁尾
    menu_style = "accordion" #將左邊的列表轉換成可縮排形式

xadmin.site.register(xadmin.views.CommAdminView,GlobaSetting)
複製程式碼

8.Django之漂亮的Admin
8.Django之漂亮的Admin

8.Django之漂亮的Admin

可以,帥爆了

應用列表為英文太難看!

/polls/apps.py

from django.apps import AppConfig


class PollsConfig(AppConfig):
    name = 'polls'
    verbose_name ="應用"
複製程式碼
/polls/init.py

default_app_config = "polls.apps.PollsConfig"
複製程式碼

報錯請看這裡

因為我之前下的似乎是版本的原因,這裡出現了一個錯誤

導致我無法進入超級使用者

8.Django之漂亮的Admin

這裡我們看他的報錯,並且進入到該行

8.Django之漂亮的Admin

將程式碼如下修改,因為之前匹配的是\n

既然\n匹配失敗,那我們程式設計'\><',就可以了

相關文章