一: 首先下載xadmincss
pip install git+git://github.com/sshwsfc/xadmin.git@django2
而後在項目的settings.py中添加以下配置python
INSTALLED_APPS = [ ..... 'xadmin', 'crispy_forms', 'reversion' ]
假如你是用的MySql數據庫,進行以下配置mysql
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'mydb', 'USER': 'root', 'PASSWORD': '123456', 'HOST': '139.107.172.158', 'PORT': '3306', } }
同時能夠把語言改爲中文,時區改爲上海git
LANGUAGE_CODE = 'zh-Hans' TIME_ZONE = 'Asia/Shanghai' USE_TZ = False # 若是沒有國際化的需求寫False,不然數據中插入時間時,有警告。
下一步配置路由,打開項目的urls.py作以下修改github
urlpatterns = [ ...... path('admin/', xadmin.site.urls), ]
ok ! 你能夠用了ajax
一、list_display 指定xadmin中須要顯示哪些字段信息,以列表顯示sql
list_display = ('first_name', 'last_name', 'email')
數據庫
二、search_fields 指定哪些字段信息能夠被搜索django
search_fields = ('first_name', 'last_name')
bash
三、list_filter 添加哪些字段須要進行過濾顯示(添加過濾器)
list_filter = ('publication_date',) #添加過濾(這裏是過濾日期)
四、date_hierarchy 添加日期過濾器,該字段只能是日期類型
date_hierarchy = 'publication_date' #過濾(日期的另一種過濾方式,能夠添加後看一下)
五、ordering 顯示的列表以什麼進行排序 ,加‘-’表示降序
ordering = ('-publication_date',) #排序(這裏以日期排序,加‘-’表示降序)
六、fields 排除一些不想被其餘人編輯的fields,不包含在內的字段不能編輯
fields = ('title', 'authors', 'publisher')
七、filter_horizontal 從‘多選框’的形式改變爲‘過濾器’的方式,水平排列過濾器,必須是一個 ManyToManyField類型,且不能用於 ForeignKey字段,默認地,管理工具使用下拉框
來展示外鍵
字段
八、filter_vertical #同上filter_horizontal,垂直排列過濾器
filter_vertical = ('authors',)
九、raw_id_fields 將ForeignKey字段從‘下拉框’改變爲‘文本框’顯示
raw_id_fields = ('publisher',)
十、list_editable 列表顯示的時候,指定的字段能夠直接頁面一鍵編輯
list_editable = ['csdevice']
十一、model_icon 指該表菜單的icon樣式
model_icon = 'fa fa-user-secret'
十二、readonly_fields 指定一些字段爲只讀,不可修改
readonly_fields = ('cservice',)
1三、exclude 在編輯和查看列表時指定不顯示的字段
exclude = ['cservice']
1四、style_fields 指定xadmin插件的樣式
style_fields = {'csdevice': 'm2m_transfer','csservice': 'ueditor',}
1五、refresh_times 後臺可選擇10秒刷新一次或者60秒刷新一次以下
refresh_times = [10, 60]
1六、show_detail_fields 在指定的字段後添加一個顯示數據詳情的一個按鈕
show_detail_fields=['ttdsn']
1七、relfield_style後臺自定義不是下拉選擇框,而是搜索框(解決了爲何用戶不是下拉框的問題。。)
relfield_style = 'fk-ajax'
1八、修改 xadmin 的主題 、title、header、菜單樣式
from xadmin import views class BaseSetting(object): enable_themes = True #開啓主題選擇 use_bootswatch = True class GlobalSettings(object): site_title = "老眼售後管理系統" #設置左上角title名字 site_footer = "lybbn" #設置底部關於版權信息 #設置菜單縮放 menu_style = "accordion" #設置菜單樣式 xadmin.site.register(views.BaseAdminView, BaseSetting) xadmin.site.register(views.CommAdminView, GlobalSettings)
1九、頁面顯示中文和時區
在settings.py中配置
LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai'
20、設置xadmin的app標題,在apps.py文件中,添加verbose_name = "客戶管理"
from django.apps import AppConfig class CustomersConfig(AppConfig): name = 'apps.customers' verbose_name = "客戶管理"
自定製: action 的使用
能夠經過orm 進行跨表或者 當前表計算
list_display 設定 字段
obj 是當前操做行的字段. 能夠 經過orm 跨表 或者當前表進行計算設定
圖表的使用
圖表主要分紅 折線圖和柱形圖 ,目前還沒找到怎麼改 只能用默認樣式.
等着研究研究怎麼把echarts 加入到xadmin 中 使用
data_charts = { "user_count": {'title': u"sc金額變化表折現表", "x-field": "num", "y-field": ("dqmoney",), }, "num_count": {'title': u"sc金額變化表1柱形表", "x-field": "num", "y-field": ("dqmoney",), 'option': { "series": {"bars": {"align": "center", "barWidth": 0.8, "show": True}}, "xaxis": {"num": "count", "dqmoney": "categories"} }, }, }
總體代碼
# -*- coding: utf-8 -*- # @Time : 2019/6/22 14:11 # @Author : Endless-cloud # @Site : # @File : adminx.py # @Software: PyCharm ''' ┏┓ ┏┓+ + ┏┛┻━━━┛┻┓ + + ┃ ┃ ┃ ━ ┃ ++ + + + ████━████ ┃+ ┃ ┃ + ┃ ┻ ┃ ┃ ┃ + + ┗━┓ ┏━┛ ┃ ┃ ┃ ┃ + + + + ┃ ┃ Code is far away from bug with the animal protecting ┃ ┃ + 神獸保佑,代碼無bug ┃ ┃ ┃ ┃ + ┃ ┗━━━┓ + + ┃ ┣┓ ┃ ┏┛ ┗┓┓┏━┳┓┏┛ + + + + ┃┫┫ ┃┫┫ ┗┻┛ ┗┻┛+ + + + ''' import xadmin #導入xadmin 文件 from .models import Sc_msg #導入模型類 # from xadmin.plugins.actions import BaseActionView # class MyAction(BaseActionView): # action類 # action_name = 'My_action' # description = 'This is my action button' # model_perm = 'change' # # def do_action(self, queryset): # for obj in queryset: # return HttpResponse(obj) # # # class MyModelAdmin(object): # # actions = [MyAction, ] class Sc_Msgxadmin(object): # 自定製action def pacth_init(self, request, queryset): print('hahaha',request,queryset) queryset.update(dqmoney=0) pacth_init.short_description ='價格初始化' actions =[pacth_init] #自定製list_display def math_sc(self,obj): print(obj.jhhl,obj.sjhl) # num1 =obj.sjhl/obj.jhhl num1 =obj.jhhl/obj.sjhl bb = "%.2f%%" % (num1 * 100) return bb math_sc.short_description = '總診斷量' list_display=['math_sc','hkdate','khname','dqmoney','jhhl','sjhl','hkhll','wwccy','yqhk','cyyi']# 設置默認展現列 list_editable=['khname','dqmoney'] #設置哪行能夠直接編輯 search_fields = ['khname','dqmoney'] # 設置搜索 ordering =['-num'] # 設置排序 list_filter = ['khname','dqmoney'] # 設置過濾項 # reversion_enable = True readonly_fields = ['num'] # 鎖定num 不容許修改 exclude = ['num'] # 在編輯或者查看的時候不顯示某個字段 show_detail_fields = ['khname']#在指定的字段後添加一個顯示數據詳情的一個按鈕 refresh_times = [10, 60] # 自動刷新時間 style_fields = {'dqmoney': 'm2m_transfer', 'dqmoney': 'ueditor', } # 字段顯示樣式 aggregate_fields = {"dqmoney": "sum"} # 列聚合,在list表格下面會增長一行統計的數據,可用的值:"count","min","max","avg", "sum" # 添加數據時候,一步一步提供數據,分塊顯示 model_icon = 'fa fa-home' # 菜單的樣式 # # # grid_layouts = ("cyyi",) ##列表的佈局方式,是以表格一行一條的方式仍是相似於縮略圖的方式展現的 data_charts = { "user_count": {'title': u"sc金額變化表折現表", "x-field": "num", "y-field": ("dqmoney",), }, "num_count": {'title': u"sc金額變化表1柱形表", "x-field": "num", "y-field": ("dqmoney",), 'option': { "series": {"bars": {"align": "center", "barWidth": 0.8, "show": True}}, "xaxis": {"num": "count", "dqmoney": "categories"} }, }, } # data_charts = { # "user_count": {'title': u"sc到期貨款", # "x-field": "num", # "y-field": ("jhhl",), # }, # } xadmin.site.register(Sc_msg,Sc_Msgxadmin) import xadmin from xadmin import views # 配置後臺主題 class BaseSetting(object): enable_themes = True use_bootswatch = True xadmin.site.register(views.BaseAdminView, BaseSetting) # 後臺系統名稱頁腳設置、設置後臺菜單爲收縮樣式 class GlobalSetting(object): site_title = 'sc系統' site_footer = 'sc系統' menu_style = 'accordion' xadmin.site.register(views.CommAdminView, GlobalSetting)
樣子