(项目)在线教育平台
Posted sweltering
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(项目)在线教育平台相关的知识,希望对你有一定的参考价值。
四、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‘
然后依次修改其他模块中的内容,最后修改完,界面显示如下:
以上是关于(项目)在线教育平台的主要内容,如果未能解决你的问题,请参考以下文章