Django集成xadmin2.0 配置詳解

xadmin簡介

As everyone knows, Django自帶的admin後臺管理界面不太好看, 使用習慣也不符合國內習慣, 所以咱們會選擇一款基於bootstrap的後臺xadmin, 更符合國內使用習慣, 界面也相對更好看。python

1、xadmin下載 解壓 配置

  1. 下載連接: github.com/sshwsfc/xad… (注意: 要下載xadmin的zip壓縮包)git

  2. 解壓到本地目錄, 解壓後有個xadmin文件夾, 就是咱們要使用的xadmin源碼啦github

2、集成xadmin到咱們的項目

  1. 項目準備django

    新建一個Django項目, 集成到已有項目則跳過bootstrap

  2. 在項目根目錄新建文件夾 extra_apps瀏覽器

    將以前解壓的xadmin文件夾複製到 extra_apps目錄下app

  3. 經過pycharm 選中extra_apps文件夾點擊鼠標右鍵選中菜單mark directory as 選擇 sources rootssh

  4. 修改settings.py 配置函數

# 在INSTALLED_APPS中添加如下app
INSTALLED_APPS = [
......
'xadmin'
'crispy_forms'
'reversion'
]

# 添加extra_apps目錄
sys.path.insert(0,os.path.join(BASE_DIR,'extra_apps'))
複製代碼
  1. 配置 urls.py 添加xadmin路由
import xadmin
urlpatterns = [
    #path('admin/', admin.site.urls), # django自帶admin 咱們不用就註釋掉
    path('admin/', xadmin.site.urls),
]
複製代碼
  1. 遷移數據
# 命令行執行如下兩條命令, 已有的項目也要執行, 生成xadmin相關數據表
python manage.py makemigrations 
python manage.py migrate
複製代碼

到這裏咱們的xadmin就已經繼承到咱們的Django項目裏了, 運行項目, 瀏覽器訪問: http://127.0.0.1:8000/admin/ 路由既能夠看到登陸界面啦url

3、編寫admin.py 模塊

Django自帶的admin註冊方式跟xadmin註冊方式稍有不一樣, 咱們下邊在admin.py模塊中將咱們的模型註冊到xadmin中

import xadmin
from .models import Orders

class OrderAdmin(object):
     # xadmin裏面顯示的字段
     list_display = ['orderid', 'mobile', 'add_time']
     # 引入搜索框, 能夠根據image搜索也能夠根據url搜索
     search_fields = ['order_id', 'mobile']
     # 添加過濾器
     list_filter = ['add_time']
     
#註冊
xadmin.site.register(Orders, OredrAdmin)
複製代碼

註冊以後刷新xadmin後臺就能看到咱們註冊的模型啦

**xadmin模塊經常使用字段含義

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 			控制菜單的圖標
複製代碼

4、xadmin 其餘功能擴展

  1. 更改默認頂部菜單和底部菜單顯示內容 和左側菜單摺疊
# 在admin.py 裏新增如下代碼
from xadmin import views
class GlobalSetting(object):
    # 設置後臺頂部標題
    site_title ='xxx管理後臺'
    # 設置後臺底部標題
    site_footer ='xxx公司'
    # 設置左側菜單摺疊
    menu_style = "accordion"

# 註冊到後臺
xadmin.site.register(views.CommAdminView, GlobalSetting)
複製代碼

重啓程序就能看到咱們更改的顯示內容啦

2. 開啓xadmin主題切換 (默認是不開啓的)

# 在admin.py 裏新增代碼
class BaseSetting(object):
    # 啓用主題管理器
    enable_themes =True
    # 使用主題
    use_bootswatch =True

# 註冊主題設置
xadmin.site.register(views.BaseAdminView, BaseSetting)
複製代碼

重啓程序就能看到切換主題的按鈕了

5、常見問題

Q: xadmin 後臺不顯示中文

解決

修改settings文件中的 LANGUAGE_CODE = 'zh-hans',

TIME_ZONE ='Asia/Shanghai'
複製代碼

保存以後刷新界面,能夠看到已顯示中文了。

Q: 本身註冊的模型顯示的是表名

解決:

建立Models模型時自定義後臺菜單

class Order(models.Model):
    order_id = models.CharField(max_length=64, null=False, verbose_name="訂單號")
    mobile = models.CharField(max_length=11, null=False, verbose_name="取件人手機號")
    class Meta:
        db_table ='Order'
        # 定義後臺菜單顯示內容
        verbose_name ="學生"
        verbose_name_plural = verbose_name
    def __str__(self):
        return self.name
# 建立字段的時候 定義 verbose_name爲想展現的字段名
# 在Meta函數內定義菜單名
複製代碼

持續更新中...

~~ Over ~~~~複製代碼
相關文章
相關標籤/搜索