8.Django之漂亮的Admin

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

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

以前在羣裏面看大佬們"炫技",有提到Django的Admin管理系統html

這裏提到了一個app叫作 xadminpython

因而我想嘗試一下git

話很少說上手github

下載Xadmindjango

網址http://www.xadmin.io/ (官網對他的介紹是一款基於bootstrap3的強大的django插件系統)編程

很惋惜,Django的官網彷佛已經中止了維護bootstrap

可是github上依舊有他的項目,地址https://github.com/sshwsfc/xadminapp

clone一下到本身的桌面上ssh

......學習

因而咱們就獲得了一個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"
複製代碼

報錯請看這裏

由於我以前下的彷佛是版本的緣由,這裏出現了一個錯誤

致使我沒法進入超級用戶

這裏咱們看他的報錯,而且進入到該行

將代碼以下修改,由於以前匹配的是\n

既然\n匹配失敗,那咱們編程'\><',就能夠了

相關文章
相關標籤/搜索