安装依赖包:
django==2.2
django-crispy-forms
django-import-export
django-reversion
django-formtools
future==0.15.2
httplib2==0.9.2
six==1.10.0
安装xadmin
pip install https://codeload.github.com/sshwsfc/xadmin/zip/django2
解决版本不兼容问题
xadmin报错 ImportError: cannot import name ‘SKIP_ADMIN_LOG‘ from
‘import_export.admin‘
进入:xadmin\plugins\importexport.py
from import_export.admin import DEFAULT_FORMATS, ImportMixin, ImportExportMixinBase
注册app
INSTALLED_APPS = (
…
'xadmin',
'crispy_forms',
...
)
配置url:
import xadmin
xadmin.autodiscover()
urlpatterns = [
# path('admin/', admin.site.urls),
path('xadmin/', xadmin.site.urls),
]
执行迁移
python manage.py migrate
创建超级管理员用户
python manage.py createsuperuser
登录
127.0.0.1:8000/xadmin
将应用表注册到xadmin上
应用目录下创建adminx.py
import xadmin
from apps.organizations.models import Teacher, CourseOrg, City
class TeacherAdmin(object):
# 列表显示字段
list_display = ['org', 'name', 'work_years', 'work_company']
# 搜索的范围
search_fields = ['org', 'name', 'work_years', 'work_company']
# 过滤器的范围
list_filter = ['org', 'name', 'work_years', 'work_company']
class CourseOrgAdmin(object):
list_display = ['name', 'desc', 'click_nums', 'fav_nums']
search_fields = ['name', 'desc', 'click_nums', 'fav_nums']
list_filter = ['name', 'desc', 'click_nums', 'fav_nums']
style_fields = {
"desc": "ueditor"
}
class CityAdmin(object):
list_display = ["id", "name", "desc"]
search_fields = ["name", "desc"]
list_filter = ["name", "desc", "add_time"]
# 列表字段可编辑
list_editable = ["name", "desc"]
xadmin.site.register(Teacher, TeacherAdmin)
xadmin.site.register(CourseOrg, CourseOrgAdmin)
xadmin.site.register(City, CityAdmin)
设置全局配置项
任意进入一个adminx.py
class GlobalSettings(object):
site_title = "xxxxx管理系统"
site_footer = "xxxxx在线网"
# menu_style = "accordion"
class BaseSettings(object):
enable_themes = True
use_bootswatch = True
# 注册到xadmin
xadmin.site.register(xadmin.views.CommAdminView, GlobalSettings)
xadmin.site.register(xadmin.views.BaseAdminView, BaseSettings)