在django中,自带有admin管理界面,是个非常强大的后台管理界面
xadmin是admin的拓展,界面功能比admin更加强大
因为要对xadmin进行一些配置,所以不能直接修改pip package里的模块
因此需要做xadmin离线安装,用来对django项目的xadmin后台定制
-
xadmin离线安装的一些操作
首先把下下来的xadmin放到项目中的extra_apps文件夹中(一般把第三方的app放到一起,便于管理)
-
将extra_apps放到系统路径中,这样django才能找到xadmin这个app
# settings.py import sys sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
-
在settings.py中注册xadmin
# 将这两个app注册,另外一个是xadmin的组件 INSTALLED_APPS = [ .... ... 'xadmin', 'crispy_forms', ]
-
在urls.py中修改管理员的网址配置
# 就是在原来基础上加两个x import xadmin from django.conf.urls import url #from django.contrib import admin urlpatterns = [ url(r'^xadmin/', xadmin.site.urls), ]
到这里,xadmin的基础配置就已经完成了,打开网页可以看到xadmin的界面
-
将数据表注册到xadmin管理界面中
- 在app目录下新建一个 adminx.py 文件 xadmin会自动查找到adminx.py这个文件
// adminx.py # coding=utf-8 # '18-5-23' '下午7:27' from .models import * import xadmin class CityDictAdmin(object): list_display = ['name', 'desc', 'add_time'] search_fields = ['name', 'desc'] list_filter = ['name', 'desc', 'add_time'] class CourseOrgAdmin(object): list_display = ['name', 'desc', 'click_nums', 'fav_nums', 'Image', 'address', 'city', 'add_time'] search_fields = ['name', 'desc', 'click_nums', 'fav_nums', 'Image', 'address', 'city__name'] list_filter = ['name', 'desc', 'click_nums', 'fav_nums', 'Image', 'address', 'city', 'add_time'] class TeacherAdmin(object): list_display = ['org', 'name', 'work_years', 'work_company', 'work_position', 'points', 'click_nums', 'fav_nums', 'add_time'] search_fields = ['org', 'name', 'work_years', 'work_company', 'work_position', 'points', 'click_nums', 'fav_nums'] list_filter = ['org__name', 'name', 'work_years', 'work_company', 'work_position', 'points', 'click_nums', 'fav_nums', 'add_time'] xadmin.site.register(Teacher, TeacherAdmin) # 参数1是表(类),参数2是配置(类) xadmin.site.register(CourseOrg, CourseOrgAdmin) xadmin.site.register(CityDict, CityDictAdmin)
注册的方式和django自带的admin操作是差不多的
list_display 是 界面显示的各个字段设置 search_fields 是 搜索器设置 一般会把时间类型的字段排除,因为这个比较容易出问题 list_filter 是过滤器设置
到这里,界面就会显示出配置的各个数据表,我们也可以在xadmin管理界面对数据表进行增删改查
-
对xadmin进行一些默认配置的修改
-
修改页眉和页脚,以及菜单栏样式
//在任意adminx.py文件中 from xadmin import views import xadmin class GlobalSettings(object): site_title = '东哥后台管理系统' # 修改页眉 site_footer = '东哥学习网' # 修改页脚 menu_style = 'accordion' #修改菜单栏 改成收缩样式
-
对xadmin管理界面主题进行修改
//与上一个在同一个文件下 class BaseSetting(object): enable_themes = True # 开启主题使用 use_bootswatch = True # 开启主题选择 (不过我并没有发现主题列表)
-
将xadmin上的app名修改成personview
//在 app 目录下的apps.py from django.apps import AppConfig class UsersConfig(AppConfig): name = 'users' verbose_name = '用户管理' # 增加verbose_name
//在 app 目录下的 __init__.py 文件下 default_app_config = 'users.apps.UsersConfig' # app名.apps.app名Config
这样,在xadmin管理界面,app名就会修改成verbose_name.
-