環境:python3.5.2 ,django 2.0 ,xadmin2.0
Firsttly,
到 https://github.com/sshwsfc/xadmin/tree/django2上下載源碼,之后把其中的xadmin目錄放在項目目錄中新建的extra_apps這個目錄中
Secondly,
將extra_apps mark as source root ,然后在settings中將其導入到python 的搜索目錄中
# Build paths inside the project like this: os.path.join(BASE_DIR, ...) BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 文件目錄導入到搜索路徑中 sys.path.insert(0, os.path.join(BASE_DIR, "apps")) sys.path.insert(0, os.path.join(BASE_DIR,"extra_apps"))
然后,install xadmin所需的第三方庫
pip3 install -r requirements.txt
Thirdly,
在settings.py中我們還需要導入以下幾個app
INSTALLED_APPS = [ ...... 'xadmin', 'crispy_forms', 'reversion', ]
Fourthly,
在urls.py中也需要對其的路徑進行下配置
from extra_apps import xadmin urlpatterns = [ #path('admin/', admin.site.urls), path('xadmin/', xadmin.site.urls), ]
Fifthly,相關設置
后台數據展示
在當前apps下創建xadmin.py文件,注意只能是adminx.py文件
class ModelObjectAdmin(object): # 排除一些不想被其他人編輯的fields,不包含在內的字段不能編輯 fields = ('fields',) # 數據展示顯示,列表中展示哪些字段信息 list_display = [“fields”,] # 篩選(后台管理頁面中的過濾器) list_filter = ['fields'] # 查詢 ,指定哪些字段信息可以被搜索 search_fields =[ 'fields'] # 后台自定義默認排序 ,加‘-’表示降序 ordering = ['-fields'] # 添加日期過濾器,該字段只能是日期類型 date_hierarchy = 'date_fields' # 后台直接在表上修改數據 list_editable = ['fields'] # 自定義該表菜單的icon樣式 model_icon = 'fa fa-cog' # xadmin/plugins/refresh插件定時刷新頁面 refresh_times = [60] # 后台可選擇10秒刷新一次或者60秒刷新一次 # 后台自定義哪些字段只可讀 readonly_fields = [“fields”] # 列表顯示的時候,指定的字段可以直接頁面一鍵編輯 list_editable = ["fields”] # 指定xadmin插件的樣式 style_fields = {'roles': 'm2m_transfer',“article”:'ueditor'} # filter_horizontal 從‘多選框’的形式改變為‘過濾器’的方式,水平排列過濾器,必須是一個 ManyToManyField類型,且不能用於 ForeignKey字段 filter_horizontal = ('fields',) # 同上filter_horizontal,垂直排列過濾器 filter_vertical = ["fields",] # 將ForeignKey字段從‘下拉框’改變為‘文本框’顯示 raw_id_fields = ['fields',] # 在編輯和查看列表時指定不顯示的字段 exclude = ['fields'] # 在指定的字段后添加一個顯示數據詳情的一個按鈕 show_detail_fields=['fields'] # 后台自定義不是下拉選擇框,而是搜索框
relfield_style = 'fk-ajax'
xadmin.site.register(ModelObject, ModelObjectAdmin)
基礎設置
from xadmin import views class BaseSetting(object): enable_themes = True #開啟主題選擇 use_bootswatch = True class GlobalSettings(object): site_title = "xx后台管理系統" #設置頭標題 site_footer = " " #設置腳標題 (設置底部關於版權信息) #設置菜單縮放 menu_style = "accordion" #設置菜單樣式 xadmin.site.register(views.BaseAdminView, BaseSetting) xadmin.site.register(views.CommAdminView, GlobalSettings)
中文顯示和時區設置
# LANGUAGE_CODE = 'en-us' LANGUAGE_CODE = 'zh-hans' # TIME_ZONE = 'UTC' TIME_ZONE = 'Asia/Shanghai'
app標題設置
app下的apps.py文件
class UserConfig(AppConfig): name = 'apps.user' verbose_name="用戶管理"