xadmin的使用
1 django内置了一个admin,有的人觉得丑,功能不够强大,这群人写了一个叫xadmin的,用来替换admin2 xadmin是django的一个app3 如何使用 -区分1.x和2.x -1.x :pip3 install xadmin -2.x :pip3 install git+git://github.com/sshwsfc/xadmin.git@django2 pip3 install https://codeload.github.com/sshwsfc/xadmin/zip/django2 -django2.x+xadmin 2.x 环境搭建 -安装 -在app中注册 'xadmin', 'crispy_forms', 'reversion', -修改国际化 # 修改使用中文界面 LANGUAGE_CODE = 'zh-Hans' # 修改时区 TIME_ZONE = 'Asia/Shanghai' USE_TZ = False
-数据迁移 python3 manage.py makemigrations python3 manage.py migrate -配置路由信息 import xadmin xadmin.autodiscover() # version模块自动注册需要版本控制的 Model from xadmin.plugins import xversion xversion.register_models() urlpatterns = [ path('xadmin/', xadmin.site.urls) ] -创建超级用户 python manage.py createsuperuser -登录,访问地址,输入用户名密码进入 http://127.0.0.1:8000/xadmin/ 4 美化 -admin.py中写一个类 class BookClass(): # 该表展示的字段 list_display = ['id', 'name', 'price','publish'] # 按照这些字段搜索 search_fields = ['id','name'] # 按哪些字段过滤 list_filter = ['is_delete'] # 可以把数据导出成excel,json,xml格式 list_export = ('xls', 'xml', 'json') # list_export设置为None来禁用数据导出功能 list_export_fields = ('id', 'name', 'price') data_charts = { "order_amount": { 'title': '随便写', "x-field": "price", "y-field": ('publish',), "order": ('id',) }, } -注册 xadmin.site.register(models.Book,BookClass)
amin.py代码:
import xadminfrom xadmin import viewsfrom app01 import modelsclass BaseSetting(): """xadmin的基本配置""" enable_themes = True # 开启主题切换功能 use_bootswatch = Trueclass GlobalSettings(): """xadmin的全局配置""" site_title = "路飞学城" # 设置站点标题 site_footer = "路飞学城有限公司" # 设置站点的页脚 # menu_style = "accordion" # 设置菜单折叠xadmin.site.register(views.BaseAdminView, BaseSetting) xadmin.site.register(views.CommAdminView, GlobalSettings)class BookClass(): # 该表展示的字段 list_display = ['id', 'name', 'price','publish'] # 按照这些字段搜索 search_fields = ['id','name'] # 按哪些字段过滤 list_filter = ['is_delete'] # 可以把数据导出成excel,json,xml格式 list_export = ('xls', 'xml', 'json') # list_export设置为None来禁用数据导出功能 list_export_fields = ('id', 'name', 'price') data_charts = { "order_amount": { 'title': '随便写', "x-field": "price", "y-field": ('publish',), "order": ('id',) }, }#这个就是之前在admin里注册的,现在变成xadmin了xadmin.site.register(models.Book,BookClass) xadmin.site.register(models.Publish) xadmin.site.register(models.AuthorDetail) xadmin.site.register(models.Author)