django+xadmin在线教育平台慕学网(二)
三、xadmin后台管理
3.1 、xadmin的安装
github下在xadmin源码:下载地址
下载完成之后,解压复制xadmin文件夹
3.2、xadmin配置
(1)新建python package “extra_apps”,把xadmin文件夹复制到extra_apps文件夹下面
(2)把extra_apps右键mark为Source Root
(3)在settings中加入
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
(4)配置路由
把admin改成xadmin
#mxonline/urls.pyfrom django.conf.urls import urlimport xadminurlpatterns = [url(r'^xdmin/', xadmin.site.urls), ]
(5)注册app
把下面两个app注册到settings.py的INSTALLED_APPS中
'xadmin', 'crispy_forms',
(6)重新生成数据库
python manage.py makemigrations python manage.py migrate
(7)将xadmin后台设置成中文街面
LANGUAGE_CODE = 'zh-hans'TIME_ZONE = 'Asia/Shanghai'USE_I18N = TrueUSE_L10N = TrueUSE_TZ = False
(8)创建超级用户(管理员用户)
python manage.py createsuperuser
根据提示输入账号名、邮箱、密码
(9)运行,登录
python manage.py runserver
访问:http://127.0.0.1:8000/xadmin/
3.3、models注册
- users下创建adminx.py
import xadminfrom .models import EmailVerifyRecord, Banner# xadmin中这里是继承object,不再是继承admin class EmailVerifyRecordAdmin(object):# 显示的列list_display = ['code', 'email', 'send_type', 'send_time']# 搜索的字段,不要添加时间搜索search_fields = ['code', 'email', 'send_type']# 过滤list_filter = ['code', 'email', 'send_type', 'send_time']class BannerAdmin(object):list_display = ['title', 'image', 'url','index', 'add_time']search_fields = ['title', 'image', 'url','index']list_filter = ['title', 'image', 'url','index', 'add_time']xadmin.site.register(EmailVerifyRecord, EmailVerifyRecordAdmin) xadmin.site.register(Banner, BannerAdmin)
- course下创建adminx.py
import xadminfrom .models import Course, Lesson, Video, CourseResourceclass CourseAdmin(object):'''课程'''list_display = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students']search_fields = ['name', 'desc', 'detail', 'degree', 'students']list_filter = ['name', 'desc', 'detail', 'degree', 'learn_times', 'students']class LessonAdmin(object):'''章节'''list_display = ['course', 'name', 'add_time']search_fields = ['course', 'name']# 这里course__name是根据课程名称过滤list_filter = ['course__name', 'name', 'add_time']class VideoAdmin(object):'''视频'''list_display = ['lesson', 'name', 'add_time']search_fields = ['lesson', 'name']list_filter = ['lesson', 'name', 'add_time']class CourseResourceAdmin(object):'''课程资源'''list_display = ['course', 'name', 'download', 'add_time']search_fields = ['course', 'name', 'download']list_filter = ['course__name', 'name', 'download', 'add_time']# 将管理器与model进行注册关联 xadmin.site.register(Course, CourseAdmin) xadmin.site.register(Lesson, LessonAdmin) xadmin.site.register(Video, VideoAdmin) xadmin.site.register(CourseResource, CourseResourceAdmin)
- organization下创建adminx.py
import xadminfrom .models import CityDict, CourseOrg, Teacherclass 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', 'add_time']search_fields = ['name', 'desc', 'click_nums', 'fav_nums']list_filter = ['name', 'desc', 'click_nums', 'fav_nums', 'city__name', 'address', 'add_time']class TeacherAdmin(object):'''老师'''list_display = ['name', 'org', 'work_years', 'work_company', 'add_time']search_fields = ['org', 'name', 'work_years', 'work_company']list_filter = ['org__name', 'name', 'work_years', 'work_company', 'click_nums', 'fav_nums', 'add_time']xadmin.site.register(CityDict, CityDictAdmin) xadmin.site.register(CourseOrg, CourseOrgAdmin) xadmin.site.register(Teacher, TeacherAdmin)
- operation下创建adminx.py
import xadminfrom .models import UserAsk, UserCourse, UserMessage, CourseComments, UserFavoriteclass UserAskAdmin(object):'''用户表单我要学习'''list_display = ['name', 'mobile', 'course_name', 'add_time']search_fields = ['name', 'mobile', 'course_name']list_filter = ['name', 'mobile', 'course_name', 'add_time']class UserCourseAdmin(object):'''用户课程学习'''list_display = ['user', 'course', 'add_time']search_fields = ['user', 'course']list_filter = ['user', 'course', 'add_time']class UserMessageAdmin(object):'''用户消息后台'''list_display = ['user', 'message', 'has_read', 'add_time']search_fields = ['user', 'message', 'has_read']list_filter = ['user', 'message', 'has_read', 'add_time']class CourseCommentsAdmin(object):'''用户评论后台'''list_display = ['user', 'course', 'comments', 'add_time']search_fields = ['user', 'course', 'comments']list_filter = ['user', 'course', 'comments', 'add_time']class UserFavoriteAdmin(object):'''用户收藏后台'''list_display = ['user', 'fav_id', 'fav_type', 'add_time']search_fields = ['user', 'fav_id', 'fav_type']list_filter = ['user', 'fav_id', 'fav_type', 'add_time']# 将后台管理器与models进行关联注册。 xadmin.site.register(UserAsk, UserAskAdmin) xadmin.site.register(UserCourse, UserCourseAdmin) xadmin.site.register(UserMessage, UserMessageAdmin) xadmin.site.register(CourseComments, CourseCommentsAdmin) xadmin.site.register(UserFavorite, UserFavoriteAdmin)
完成之后,启动项目,后台管理界面如下:
3.4、xadmin的全局配置
将全局配置修改:
- 如左上角:django Xadmin。下面的我的公司
- 主题修改,app名称汉化,菜单收叠。
使用xadmin的主题功能
把全站的配置放在users/adminx.py中:
(1)添加主题功能
from xadmin import views# 创建xadmin的最基本管理器配置,并与view绑定 class BaseSetting(object):# 开启主题功能enable_themes = Trueuse_bootswatch = True# 将基本配置管理与view绑定 xadmin.site.register(views.BaseAdminView,BaseSetting)
(2)修改左上方的django admin和下面的我的公司
# 全局修改,固定写法 class GlobalSettings(object):# 修改titlesite_title = 'xxxxxx'# 修改footersite_footer = 'xoxoxo'# 收起菜单menu_style = 'accordion'# 将title和footer信息进行注册 xadmin.site.register(views.CommAdminView,GlobalSettings)
(3)修改在xadmin后台系统app的名字
在每个app下面的apps.py文件
#users/apps.pyfrom django.apps import AppConfigclass UsersConfig(AppConfig):name = 'users'verbose_name = '用户'
在每个app下面__init__.py中引用apps.py的配置
#users/__init__.py default_app_config = 'users.apps.UsersConfig'
#operation/apps.py from django.apps import AppConfigclass OperationConfig(AppConfig):name = 'operation'verbose_name = '用户操作'#operation/__init__.py
default_app_config = 'operation.apps.OperationConfig'
#course/apps.py from django.apps import AppConfigclass CourseConfig(AppConfig):name = 'course'verbose_name = '课程' #course/__init.py__ default_app_config = 'course.apps.CourseConfig'
#organization/apps.py from django.apps import AppConfigclass OrganizationConfig(AppConfig):name = 'organization'verbose_name = '机构'#organization/__init__.py default_app_config = 'organization.apps.OrganizationConfig'
转载于:https://www.cnblogs.com/Jiangchuanwei/p/9172148.html
django+xadmin在线教育平台慕学网(二)相关推荐
- django+xadmin在线教育平台(十二)
6-4 用form实现登录-1 上面我们的用户登录的方法是基于函数来做的.本节我们做一个基于类方法的版本. 要求对类的继承有了解. 基础教程中基本上都是基于函数来做的,其实更推荐基于类来做.基于类可以 ...
- django+xadmin 在线教育网站(三)
在此之前我们已成功的使用xadmin将后台管理系统搭建起来了,接下来,开始我们后台的功能处理 首先是登录功能 登录功能 (1)把html文件中index.html和login.html拷贝到templ ...
- django+xadmin 在线教育网站(二)
在之前我们已经把项目所需的基本配置,已配置,接下来是此项目的重点配置(xadmin),我们将用xadmin,实现快速搭建后台管理系统 首先是xadmin的安装,github下载 xadmin下载链接地 ...
- Django打造在线教育平台_day_4: 找回密码
1.form.py验证输入 from django import forms from captcha.fields import CaptchaFieldclass ForgetForm(forms ...
- Django搭建在线教育平台(一)
一.环境搭建 安装mysql 安装python 安装navicat 二.虚拟环境virtualenv virtualenv优点: 使用不同应用开发环境独立 环境实际不影响其他应用,也不影响全局的Pyt ...
- Django+xadmin打造在线教育平台(七)
Django+xadmin打造在线教育平台(七) 代码 github下载 十.授课教师 10.1.讲师列表页 拷贝teacher-list.html和teacher-detail.html到tem ...
- Django+xadmin打造在线教育平台(十)
目录 在线教育平台(一) 在线教育平台(二) 在线教育平台(三) 在线教育平台(四) 在线教育平台(五) 在线教育平台(六) 在线教育平台(七) 在线教育平台( ...
- 第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击...
第三百九十二节,Django+Xadmin打造上线标准的在线教育平台-sql注入攻击,xss攻击,csrf攻击 sql注入攻击 也就是黑客通过表单提交的地方,在表单里输入了sql语句,就是通过SQL语 ...
- 第三百七十七节,Django+Xadmin打造上线标准的在线教育平台—apps目录建立,以及数据表生成...
第三百七十七节,Django+Xadmin打造上线标准的在线教育平台-apps目录建立,以及数据表生成 apps目录建立 我们创建一个apps目录,将所有的app放到apps目录里去,这样方便管理,也 ...
最新文章
- typeof,instanceof 和 isProtoTypeof
- Centos7 防火墙和Selinux 一些简单操作命令
- Jupyter Notebook已出现“返祖现象”,这款工具让你在终端里使用它
- python程序设计与应用教程鄂大伟_鄂大伟-从零进阶的Python教学与开发之路.pdf
- [网络安全自学篇] 五十三.Windows系统安全之Metasploit实现栈溢出攻击及反弹shell原理解析
- 文本挖掘(part6)--共现矩阵
- 【经典回放】JavaScript学习详细干货笔记之(一)
- matlab安装m_map,MATLAB中安装m_map后不能用,求解
- 【WPF学习笔记】之如何点击“新建”按钮,在面板中加载一条条的“用户控件”的信息:动画系列之(四)...
- 我的技术心病(转贴)
- 启动菜单(Boot Menu)快捷键列表
- Proxy SwitchyOmega 使用黑名单和白名单
- 什么是IOC,IOC的优缺点及IOC的应用
- python--条件判断和循环--3
- ThinkPHP 数据库操作,插入,更新,删除,查询
- gnuwin32从全量备份中单表还原_入门MySQL——备份与恢复
- C程序设计语言(KR)笔记
- Exsi主机判断UPS状态自动进行关机
- Java: 将中文名转换为指定格式拼音
- shuipFCMS收集2
热门文章
- [分享]結婚當天SOP
- XS9950硬件替代TP9950 国产1CH模拟高清RX芯片
- 一刷77-回溯-78子集(m)(剑指 Offer II 079. 所有子集)
- Dapper ORM
- 解决iOS微信(分身版)6.3.9无法重装的问题
- 你知道 HTTP 是如何使用 TCP 连接的吗?今天我就来告诉你!
- [指导]Lenovo G50-70/G40-70笔记本clover安装引导黑苹果
- CSDN的C币能做什么,求解答?
- c++遍历文件夹下所有图片
- 排序算法 -- Java