(项目)在线教育平台(二)
2018-11-20 03:24:10来源:博客园 阅读 ()
四、xadmin后台管理系统
1、xadmin安装
首先在该网址下载xadmin的源码包:https://github.com/sshwsfc/xadmin/tree/django2
下载完成之后,将该安装包放在项目目录下进行安装:pip install xadmin-django2.zip
这时它会安装许多xadmin相关的依赖包,然后在项目根目录下新建包extra_apps,将下载好的xadmin源码解压,将里面的xadmin文件拷贝到该包下,我们是用源码安装的方式,需要将xadmin卸载:pip uninstall xadmin
我们使用的是源码的方式,需要将xadmin和crispy_forms配置进setting.py中的INSTALLED_APPS中:
1 INSTALLED_APPS = [ 2 'django.contrib.auth', 3 'django.contrib.contenttypes', 4 'django.contrib.sessions', 5 'django.contrib.messages', 6 'django.contrib.staticfiles', 7 'django.contrib.admin', 8 'users', 9 'course', 10 'organization', 11 'operation', 12 'xadmin', 13 'crispy_forms' 14 ]
将extra_apps包Mark成Source Root,并在settings.py中进行配置:
1 import os 2 import sys 3 4 # Build paths inside the project like this: os.path.join(BASE_DIR, ...) 5 BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 6 sys.path.insert(0, os.path.join(BASE_DIR, 'apps')) 7 sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
然后配置xadmin的路由,在MxOnline/urls.py文件中配置路由:
1 import xadmin 2 3 urlpatterns = [ 4 path('xadmin/', xadmin.site.urls), 5 ]
然后就可以进行迁移数据库,生成xadmin后台管理所需的表,注意,如果提示RuntimeError,需要在INSTALLED_APPS中配置django.contrib.admin。
现在就可以使用xadmin后台管理系统了,不过要先创建一个管理员用户,打开Run manage.py Task,运行createsuperuser创建管理员用户:
创建好之后就可以登录后台管理系统了:http://127.0.0.1:8000/xadmin/
右侧都是英文,我们需要设置成中文显示,在settings.py文件中进行配置:
1 LANGUAGE_CODE = 'zh-hans' 2 3 TIME_ZONE = 'Asia/Shanghai' 4 5 USE_I18N = True 6 7 USE_L10N = True 8 9 USE_TZ = False
2、models注册
现在需要将我们设计好的每个models中的表注册进后台管理系统中,以实现数据的增删改查。
2.1 user的model注册
在users下面创建adminx.py文件,在该文件下编写注册代码:
1 import xadmin 2 3 from users.models import EmailVerifyRecord, Banner 4 5 6 class EmailVerifyRecordAdmin(object): 7 # 显示的列 8 list_display = ['code', 'email', 'send_type', 'send_time'] 9 # 搜索的字段 10 search_fields = ['code', 'email', 'send_type'] 11 # 过滤 12 list_filter = ['code', 'email', 'send_type', 'send_time'] 13 14 xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin) 15 16 17 class BannerAdmin(object): 18 list_display = ['title', 'image', 'url','index', 'add_time'] 19 search_fields = ['title', 'image', 'url','index'] 20 list_filter = ['title', 'image', 'url','index', 'add_time'] 21 22 xadmin.site.register(Banner, BannerAdmin)
刷新页面之后,左侧导航栏出现了邮箱验证码和轮播图的选项,还有自己设置的显示列表选项,筛选选项,搜索选项,界面显示如下:
2.2 course的model注册
在course下面创建adminx.py文件,在该文件下编写注册代码:
1 import xadmin 2 3 from .models import Course, Lesson, Video, CourseResourse 4 5 class CourseAdmin(object): 6 list_display = ['name','desc','detail','degree','learn_times','students'] 7 search_fields = ['name', 'desc', 'detail', 'degree', 'students'] 8 list_filter = ['name','desc','detail','degree','learn_times','students'] 9 10 xadmin.site.register(Course, CourseAdmin) 11 12 13 class LessonAdmin(object): 14 list_display = ['course', 'name', 'add_time'] 15 search_fields = ['course', 'name'] 16 # course__name是根据课程名称进行过滤 17 list_filter = ['course__name', 'name', 'add_time'] 18 19 xadmin.site.register(Lesson, LessonAdmin) 20 21 22 class VideoAdmin(object): 23 list_display = ['lesson', 'name', 'add_time'] 24 search_fields = ['lesson', 'name'] 25 list_filter = ['lesson', 'name', 'add_time'] 26 27 xadmin.site.register(Video, VideoAdmin) 28 29 30 class CourseResourseAdmin(object): 31 list_display = ['course', 'name', 'download', 'add_time'] 32 search_fields = ['course', 'name', 'download'] 33 list_filter = ['course__name', 'name', 'download', 'add_time'] 34 35 xadmin.site.register(CourseResourse, CourseResourseAdmin)
2.3 organization的model注册
在organization下面创建adminx.py文件,在该文件下编写注册代码:
1 import xadmin 2 3 from .models import CityDict, CourseOrg, Teacher 4 5 6 class CityDictAdmin(object): 7 list_display = ['name', 'desc', 'add_time'] 8 search_fields = ['name', 'desc'] 9 list_filter = ['name', 'desc', 'add_time'] 10 11 xadmin.site.register(CityDict, CityDictAdmin) 12 13 14 class CourseOrgAdmin(object): 15 list_display = ['name', 'desc', 'click_nums', 'fav_nums','add_time'] 16 search_fields = ['name', 'desc', 'click_nums', 'fav_nums'] 17 list_filter = ['name', 'desc', 'click_nums', 'fav_nums','city__name','address','add_time'] 18 19 xadmin.site.register(CourseOrg, CourseOrgAdmin) 20 21 22 class TeacherAdmin(object): 23 list_display = ['name','org', 'work_years', 'work_company','add_time'] 24 search_fields = ['org', 'name', 'work_years', 'work_company'] 25 list_filter = ['org__name', 'name', 'work_years', 'work_company','click_nums', 'fav_nums', 'add_time'] 26 27 xadmin.site.register(Teacher, TeacherAdmin)
2.4 operation的model注册
在operation下面创建adminx.py文件,在该文件下编写注册代码:
1 import xadmin 2 3 from .models import UserAsk, UserMessage, CourseComments, UserCourse, UserFavorite 4 5 6 class UserAskAdmin(object): 7 list_display = ['name', 'mobile', 'course_name', 'add_time'] 8 search_fields = ['name', 'mobile', 'course_name'] 9 list_filter = ['name', 'mobile', 'course_name', 'add_time'] 10 11 xadmin.site.register(UserAsk, UserAskAdmin) 12 13 14 class UserMessageAdmin(object): 15 list_display = ['user', 'message', 'has_read', 'add_time'] 16 search_fields = ['user', 'message', 'has_read'] 17 list_filter = ['user', 'message', 'has_read', 'add_time'] 18 19 xadmin.site.register(UserMessage, UserMessageAdmin) 20 21 22 class CourseCommentsAdmin(object): 23 list_display = ['user', 'course', 'comments', 'add_time'] 24 search_fields = ['user', 'course', 'comments'] 25 list_filter = ['user', 'course', 'comments', 'add_time'] 26 27 xadmin.site.register(CourseComments, CourseCommentsAdmin) 28 29 30 class UserCourseAdmin(object): 31 list_display = ['user', 'course', 'add_time'] 32 search_fields = ['user', 'course'] 33 list_filter = ['user', 'course', 'add_time'] 34 35 xadmin.site.register(UserCourse, UserCourseAdmin) 36 37 38 class UserFavoriteAdmin(object): 39 list_display = ['user', 'fav_id', 'fav_type', 'add_time'] 40 search_fields = ['user', 'fav_id', 'fav_type'] 41 list_filter = ['user', 'fav_id', 'fav_type', 'add_time'] 42 43 xadmin.site.register(UserFavorite, UserFavoriteAdmin)
至此,后台管理中所有的model注册完毕,界面显示如下:
3、xadmin的全局配置
修改左上角的显示标题,还有最底部的我的公司,主题功能,app名称汉化、左侧菜单收叠,这些修改的配置都写进users/adminx.py文件中:
3.1 主题功能
1 from xadmin import views 2 3 class BaseSetting(object): 4 """主题配置""" 5 enable_themes = True 6 use_bootswatch = True 7 8 xadmin.site.register(views.BaseAdminView, BaseSetting)
配置之后,后台管理界面的右上角出现了主题,可以进行主题更换:
3.2 logo、底部我的公司,菜单收叠
1 class GlobalSetting(object): 2 """ logo、底部我的公司,菜单收叠配置""" 3 # logo 4 site_title = '知能网在线教育后台管理' 5 # 我的公司 6 site_footer = '知能网' 7 # 菜单收叠 8 menu_style = 'accordion' 9 10 xadmin.site.register(views.CommAdminView, GlobalSetting)
刷新页面之后,修改的地方如下:
3.3 app名称汉化
修改每个模块中的app.py文件,以users/apps.py为例,在文件中添加verbose_name = '用户',修改内容如下:
1 from django.apps import AppConfig 2 3 4 class UsersConfig(AppConfig): 5 name = 'users' 6 verbose_name = '用户管理'
然后在__init__.py文件中引用app.py文件中的配置:
1 default_app_config = 'users.apps.UsersConfig'
然后依次修改其他模块中的内容,最后修改完,界面显示如下:
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Python入门的学习方法
下一篇:python学习day2
- Django项目中使用qq第三方登录。 2019-08-13
- 把Python项目打包成exe文件 2019-08-13
- svn下载项目的时候出现 Path to certificate 2019-08-13
- django框架使用及创建项目 2019-07-24
- PyCharm如何导入python项目 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash