As everyone knows, Django自帶的admin後臺管理界面不太好看, 使用習慣也不符合國內習慣, 所以咱們會選擇一款基於bootstrap的後臺xadmin, 更符合國內使用習慣, 界面也相對更好看。python
下載連接: github.com/sshwsfc/xad… (注意: 要下載xadmin的zip壓縮包)git
解壓到本地目錄, 解壓後有個xadmin文件夾, 就是咱們要使用的xadmin源碼啦github
項目準備django
新建一個Django項目, 集成到已有項目則跳過bootstrap
在項目根目錄新建文件夾 extra_apps瀏覽器
將以前解壓的xadmin文件夾複製到 extra_apps目錄下app
經過pycharm 選中extra_apps文件夾點擊鼠標右鍵選中菜單mark directory as 選擇 sources rootssh
修改settings.py 配置函數
# 在INSTALLED_APPS中添加如下app
INSTALLED_APPS = [
......
'xadmin'
'crispy_forms'
'reversion'
]
# 添加extra_apps目錄
sys.path.insert(0,os.path.join(BASE_DIR,'extra_apps'))
複製代碼
import xadmin
urlpatterns = [
#path('admin/', admin.site.urls), # django自帶admin 咱們不用就註釋掉
path('admin/', xadmin.site.urls),
]
複製代碼
# 命令行執行如下兩條命令, 已有的項目也要執行, 生成xadmin相關數據表
python manage.py makemigrations
python manage.py migrate
複製代碼
到這裏咱們的xadmin就已經繼承到咱們的Django項目裏了, 運行項目, 瀏覽器訪問: http://127.0.0.1:8000/admin/ 路由既能夠看到登陸界面啦url
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 控制菜單的圖標
複製代碼
# 在admin.py 裏新增如下代碼
from xadmin import views
class GlobalSetting(object):
# 設置後臺頂部標題
site_title ='xxx管理後臺'
# 設置後臺底部標題
site_footer ='xxx公司'
# 設置左側菜單摺疊
menu_style = "accordion"
# 註冊到後臺
xadmin.site.register(views.CommAdminView, GlobalSetting)
複製代碼
重啓程序就能看到咱們更改的顯示內容啦
# 在admin.py 裏新增代碼
class BaseSetting(object):
# 啓用主題管理器
enable_themes =True
# 使用主題
use_bootswatch =True
# 註冊主題設置
xadmin.site.register(views.BaseAdminView, BaseSetting)
複製代碼
重啓程序就能看到切換主題的按鈕了
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 ~~~~複製代碼