三、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在线教育平台慕学网(二)相关推荐

  1. django+xadmin在线教育平台(十二)

    6-4 用form实现登录-1 上面我们的用户登录的方法是基于函数来做的.本节我们做一个基于类方法的版本. 要求对类的继承有了解. 基础教程中基本上都是基于函数来做的,其实更推荐基于类来做.基于类可以 ...

  2. django+xadmin 在线教育网站(三)

    在此之前我们已成功的使用xadmin将后台管理系统搭建起来了,接下来,开始我们后台的功能处理 首先是登录功能 登录功能 (1)把html文件中index.html和login.html拷贝到templ ...

  3. django+xadmin 在线教育网站(二)

    在之前我们已经把项目所需的基本配置,已配置,接下来是此项目的重点配置(xadmin),我们将用xadmin,实现快速搭建后台管理系统 首先是xadmin的安装,github下载 xadmin下载链接地 ...

  4. Django打造在线教育平台_day_4: 找回密码

    1.form.py验证输入 from django import forms from captcha.fields import CaptchaFieldclass ForgetForm(forms ...

  5. Django搭建在线教育平台(一)

    一.环境搭建 安装mysql 安装python 安装navicat 二.虚拟环境virtualenv virtualenv优点: 使用不同应用开发环境独立 环境实际不影响其他应用,也不影响全局的Pyt ...

  6. Django+xadmin打造在线教育平台(七)

    Django+xadmin打造在线教育平台(七)   代码 github下载 十.授课教师 10.1.讲师列表页 拷贝teacher-list.html和teacher-detail.html到tem ...

  7. Django+xadmin打造在线教育平台(十)

    目录 在线教育平台(一)      在线教育平台(二) 在线教育平台(三)      在线教育平台(四) 在线教育平台(五)      在线教育平台(六) 在线教育平台(七)      在线教育平台( ...

  8. 第三百九十二节,Django+Xadmin打造上线标准的在线教育平台—sql注入攻击,xss攻击,csrf攻击...

    第三百九十二节,Django+Xadmin打造上线标准的在线教育平台-sql注入攻击,xss攻击,csrf攻击 sql注入攻击 也就是黑客通过表单提交的地方,在表单里输入了sql语句,就是通过SQL语 ...

  9. 第三百七十七节,Django+Xadmin打造上线标准的在线教育平台—apps目录建立,以及数据表生成...

    第三百七十七节,Django+Xadmin打造上线标准的在线教育平台-apps目录建立,以及数据表生成 apps目录建立 我们创建一个apps目录,将所有的app放到apps目录里去,这样方便管理,也 ...

最新文章

  1. typeof,instanceof 和 isProtoTypeof
  2. Centos7 防火墙和Selinux 一些简单操作命令
  3. Jupyter Notebook已出现“返祖现象”,这款工具让你在终端里使用它
  4. python程序设计与应用教程鄂大伟_鄂大伟-从零进阶的Python教学与开发之路.pdf
  5. [网络安全自学篇] 五十三.Windows系统安全之Metasploit实现栈溢出攻击及反弹shell原理解析
  6. 文本挖掘(part6)--共现矩阵
  7. 【经典回放】JavaScript学习详细干货笔记之(一)
  8. matlab安装m_map,MATLAB中安装m_map后不能用,求解
  9. 【WPF学习笔记】之如何点击“新建”按钮,在面板中加载一条条的“用户控件”的信息:动画系列之(四)...
  10. 我的技术心病(转贴)
  11. 启动菜单(Boot Menu)快捷键列表
  12. Proxy SwitchyOmega 使用黑名单和白名单
  13. 什么是IOC,IOC的优缺点及IOC的应用
  14. python--条件判断和循环--3
  15. ThinkPHP 数据库操作,插入,更新,删除,查询
  16. gnuwin32从全量备份中单表还原_入门MySQL——备份与恢复
  17. C程序设计语言(KR)笔记
  18. Exsi主机判断UPS状态自动进行关机
  19. Java: 将中文名转换为指定格式拼音
  20. shuipFCMS收集2

热门文章

  1. [分享]結婚當天SOP
  2. XS9950硬件替代TP9950 国产1CH模拟高清RX芯片
  3. 一刷77-回溯-78子集(m)(剑指 Offer II 079. 所有子集)
  4. Dapper ORM
  5. 解决iOS微信(分身版)6.3.9无法重装的问题
  6. 你知道 HTTP 是如何使用 TCP 连接的吗?今天我就来告诉你!
  7. [指导]Lenovo G50-70/G40-70笔记本clover安装引导黑苹果
  8. CSDN的C币能做什么,求解答?
  9. c++遍历文件夹下所有图片
  10. 排序算法 -- Java