xadmin使用

pythonpython一. 介紹#

xadmin是Django的第三方擴展,但是使Django的admin站點使用更方便。html

文檔:https://xadmin.readthedocs.io/en/latest/index.htmlpython

二. 安裝#

經過以下命令安裝xadmin的最新版git

Copy
pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2 --default-timeout=1000

在配置文件中註冊以下應用github

Copy
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# 把apps目錄設置環境變量中的導包路徑
sys.path.append(os.path.join(BASE_DIR, "apps"))


INSTALLED_APPS = [
    ...
    'xadmin',
    'crispy_forms',
    'reversion',
    ...
]

# 修改使用中文界面
LANGUAGE_CODE = 'zh-hans'
# LANGUAGE_CODE = 'en-us'


# 修改時區
# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/shanghai'

# USE_TZ = True
USE_TZ = False

xadmin有創建本身的數據庫模型類,須要進行數據庫遷移數據庫

Copy
# 其實makemigrations已經幫咱們作好了, 只須要migrate就好了
# 查看
from xadmin import migrations

# 執行如下命令
python manage.py makemigrations
python manage.py migrate

image-20200719164001019

在總路由中添加xadmin的路由信息django

Copy
import xadmin
xadmin.autodiscover()

# version模塊自動註冊須要版本控制的 Model
from xadmin.plugins import xversion
xversion.register_models()

urlpatterns = [
    path(r'xadmin/', xadmin.site.urls)
]

建立超級用戶json

Copy
python manage.py createsuperuser

三. 使用#

  • xadmin再也不使用Django的admin.py,而是須要編寫代碼在adminx.py文件中。
  • xadmin的站點管理類不用繼承admin.ModelAdmin,而是直接繼承object便可。

例如:在子應用中建立adminx.py文件。後端

1. 站點的全局配置#

Copy
import xadmin
from xadmin import views

class BaseSetting(object):
    """xadmin的基本配置"""
    enable_themes = True  # 開啓主題切換功能
    use_bootswatch = True

xadmin.site.register(views.BaseAdminView, BaseSetting)

class GlobalSettings(object):
    """xadmin的全局配置"""
    site_title = "路飛學城"  # 設置站點標題
    site_footer = "路飛學城有限公司"  # 設置站點的頁腳
    menu_style = "accordion"  # 設置菜單摺疊

xadmin.site.register(views.CommAdminView, GlobalSettings)

2. 站點Model管理#

xadmin可使用的頁面樣式控制基本與Django原生的admin一直。markdown

  • list_display 控制列表展現的字段app

    Copy
    list_display = ['id', 'btitle', 'bread', 'bcomment']
  • search_fields 控制能夠經過搜索框搜索的字段名稱,xadmin使用的是模糊查詢

    Copy
    search_fields = ['id','btitle']
  • list_filter 能夠進行過濾操做的列,對於分類、性別、狀態

    Copy
    list_filter = ['is_delete']
  • ordering 默認排序的字段

  • readonly_fields 在編輯頁面的只讀字段

  • exclude 在編輯頁面隱藏的字段

  • list_editable 在列表頁能夠快速直接編輯的字段

  • show_detail_fields 在列表頁提供快速顯示詳情信息

  • refresh_times 指定列表頁的定時刷新

    Copy
    refresh_times = [5, 10,30,60]  # 設置容許後端管理人員按多長時間(秒)刷新頁面
  • list_export 控制列表頁導出數據的可選格式

    Copy
    list_export = ('xls', 'xml', 'json')   list_export設置爲None來禁用數據導出功能
    list_export_fields = ('id', 'btitle', 'bpub_date')
  • show_bookmarks 控制是否顯示書籤功能

    Copy
    show_bookmarks = True
  • data_charts 控制顯示圖表的樣式

    Copy
    data_charts = {
            "order_amount": {
              'title': '圖書發佈日期表', 
              "x-field": "bpub_date", 
              "y-field": ('btitle',),
              "order": ('id',)
            },
        # 支持生成多個不一樣的圖表
        # "order_amount": {
        # 'title': '圖書發佈日期表', 
        # "x-field": "bpub_date", 
        # "y-field": ('btitle',),
        # "order": ('id',)
        # },
        }
    • title 控制圖標名稱
    • x-field 控制x軸字段
    • y-field 控制y軸字段,能夠是多個值
    • order 控制默認排序
  • model_icon 控制菜單的圖標

    Copy
    class BookInfoAdmin(object):
        model_icon = 'fa fa-gift'
    
    xadmin.site.register(models.BookInfo, BookInfodmin)
相關文章
相關標籤/搜索