Django+xadmin打造在线教育平台(二)

一、xadmin后台管理

1.xadmin的安装(源码安装)

(1)直接git clone https://github.com/sshwsfc/xadmin.git(前提是装有git)

(2)新建Python Package "extra_apps",把源码xadmin文件夹放到extra_apps文件夹下面,此时目录结构如下:


(3)把extra_apps右键mark为Source Root

(4)在settings中加入如下代码

sys.path.insert(0,os.path.join(BASE_DIR, ‘extra_apps‘)

(5)配置路由,在MxOnline\MxOnline\urls.py中,把admin改成xdmin。

from django.urls import path
import xadmin

urlpatterns = [
    path(‘xadmin/‘, xadmin.site.urls),
]

(6)注册app

把下面两个app注册到settings.py的INSTALLED_APPS中

‘xadmin‘,
‘crispy_forms‘

(7)重新生成数据库

python manage.py makemigrations

python manage.py migrate

(8)设置成中文(在settings文件中)

LANGUAGE_CODE = ‘zh-hans‘

TIME_ZONE = ‘Asia/Shanghai‘

USE_I18N = True

USE_L10N = True

USE_TZ = False

(8)创建一个管理员用户

python manage.py createsuperuser

密码不能太简单,email直接可以回车

(9)访问后台:http://127.0.0.1:8000/xadmin,登录。

2、users app的models注册

# users/adminx.py

import xadmin

from .models import EmailVerifyRecord

#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‘]
 xadmin.site.register(EmailVerifyRecord,EmailVerifyRecordAdmin)

users中Banner也注册进去

from .models import Banner

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(Banner,BannerAdmin)

3、course app的models注册

import xadmin

from .models import Course, Lesson, Video, CourseResource

class 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)

4、organizations app的models注册


import xadmin


from .models import CityDict, CourseOrg, Teacher


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‘,‘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)

5、operation app的models注册

import xadmin

from .models import UserAsk, UserCourse, UserMessage, CourseComments, UserFavorite

class 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)

6.xadmin的全局配置

将全局配置修改:

  • 如左上角:django Xadmin。下面的我的公司
  • 主题修改,app名称汉化,菜单收叠。

使用Xadmin的主题功能。

把全站的配置放在users\adminx.py中:

(1)添加主题功能

from xadmin import views
# 创建xadmin的最基本管理器配置,并与view绑定
class BaseSetting(object):
    # 开启主题功能
    enable_themes = True
    use_bootswatch = True

# 将基本配置管理与view绑定
xadmin.site.register(views.BaseAdminView,BaseSetting)

(2)全局配置

修改django xadmin 和下面的我的公司收起菜单

# 全局修改,固定写法
class GlobalSettings(object):
    # 修改title
    site_title = ‘Egon人生无限‘
    # 修改footer
    site_footer = ‘瞎驴的公司‘
    # 收起菜单
    menu_style = ‘accordion‘

# 将title和footer信息进行注册
xadmin.site.register(views.CommAdminView,GlobalSettings)

(3)修改app的名字

在apps.py里面配置app的显示名称

以users/apps.py为例,其它三个同样操作

默认apps.py里面的代码

from django.apps import AppConfig

class UsersConfig(AppConfig):
    name = ‘users‘

修改后:

from django.apps import AppConfig

class UsersConfig(AppConfig):
    name = ‘users‘
    verbose_name = ‘用户‘

还要在users/__init__.py中引用apps.py的配置

添加代码如下:

# users/__init__.py

default_app_config = ‘users.apps.UsersConfig‘

设置完成以后,刷新页面如图所示:

 


原文地址:https://www.cnblogs.com/huiyichanmian/p/11768757.html

时间: 2024-08-30 05:12:44

Django+xadmin打造在线教育平台(二)的相关文章

Django+xadmin打造在线教育平台(一)

Django+xadmin打造在线教育平台(一)   代码 github下载 一.前言 代码下载: 开发环境: python:  3.6.4 Django: 2.0.2 后台管理:xadmin 1.1.项目介绍 系统概括: 系统具有完整的用户登录注册以及找回密码功能,拥有完整个人中心. 个人中心: 修改头像,修改密码,修改邮箱,可以看到我的课程以及我的收藏.可以删除收藏,我的消息. 导航栏: 公开课,授课讲师,授课机构,全局搜索. 点击公开课–> 课程列表,排序-搜索.热门课程推荐,课程的分页.

Django+xadmin打造在线教育平台(九)

Django+xadmin打造在线教育平台(九)   代码 github下载 十二.首页和全局404,500配置 12.1.首页功能 Course添加一个字段 is_banner = models.BooleanField('是否轮播',default=False) CourseOrg添加一个字段 tag = models.CharField('机构标签',max_length=10,default='全国知名') (1)view class IndexView(View): '''首页'''

Django+xadmin打造在线教育平台(三)

Django+xadmin打造在线教育平台(三)   代码 github下载 五.用户注册 主要实现功能 用户输入邮箱.密码和验证码,点注册按钮 如果输入的不正确,提示错误信息 如果正确,发送激活邮件,用户通过邮件激活后才能登陆 即使注册功能,没有激活的用户也不能登陆 5.1.初步视图 users/views.py class RegisterView(View): '''用户注册''' def get(self,request): return render(request,'register

Django+xadmin打造在线教育平台(五)

Django+xadmin打造在线教育平台(五)   代码 github下载 八.课程详情页功能的实现 8.1.课程列表 (1)配置urls MxOnline/urls中 path("course/", include('course.urls', namespace="course")), course里面新建urls.py # course/urls.py from django.urls import path,re_path from .views impo

Django+Xadmin打造在线教育系统(二)

基于xadmin的后台管理 需要对源码进行修改,将xadmin的源码下载下来 https://github.com/sshwsfc/xadmin/tree/django2 在项目根目录新建Python Package "extra_apps",把源码xadmin文件夹放到extra_apps文件夹下面,此时目录结构如下: 将extra_apps加入系统路径 # settings.py sys.path.insert(0,os.path.join(BASE_DIR, 'extra_app

CK2148-Python升级3.6 强力Django+杀手级Xadmin打造在线教育平台

随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到程序开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了.对于学习有困难不知道如何提升自己可以加扣:1225462853进行交流得到帮助,获取学习资料. 下载地址:http://pan.baidu.com/s/1jI05TPW 搞个"大"项目 开发一套功能完备的系统 25小时企业级实战:从0到项目成型 以互联网公司标准开发流程,从零开发出一套可以达到上线标准

Python升级3.6 强力Django+杀手级Xadmin打造在线教育平台

第 1 章 课程介绍 1-1 项目演示和课程介绍: 第 2 章 Windows下搭建开发环境 2-1 Pycharm.Navicat和Python解释器的安装: 2-2 Virtualenv安装和配置: 2-3 Pycharm和Navicat的简单使用: 第 3 章 通过留言板功能回顾Django基础知识 3-1 Django目录介绍 3-2 配置表单页面 3-3 Django orm介绍与model设计 3-4 Django model的增删改查 3-5 Django url template

Django+Xadmin打造在线教育系统(三)

完成登录 注册 找回密码 激活 验证码集成 将HTML文件拷贝到templates目录下,css,js,img,media,images文件夹拷贝到static文件夹下 修改index.html和login.html文件中的静态文件路径,全部替换为如下格式 <link rel="stylesheet" type="text/css" href="{% static "css/reset.css" %}"> <

Django+Xadmin打造在线教育系统(五)

课程相关功能实现 课程列表 创建课程相关的urls.py path("course/", include('course.urls', namespace="course")), course里面新建urls.py from django.urls import path from course.views import CourseListView app_name = "courses" urlpatterns = [ # 课程列表url p