对应github地址:第16天
 
一. 首页配置
1. courses/models.py -->class Course增加字段,迁移数据库
 
2. 配置view
users/views.py中增加
 
3. 配置url,将原来的静态页面index配置修改为如下
 
 
4. index.html页面内容填充
4.1 顶部轮播图
 
4.2 公开课轮播图
 
 
4.3 公开课非轮播图<div>标签如下
发现其中的class名存在变量,那么怎么进行for循环呢? for循环标签中有一个变量forloop.counter,它会自动计算当前为第几次循环,并返回相应的值。只需要在后面加上"|add:2"即可得到数字3
注意得到课程难度的表示方式{{ course.get_degree_display }}
 
 
4.4 机构展示
每一个机构代码都是一个<li>标签,但是第5个机构多了一个class="five", 而且只要是5的倍数都会有class="five"
使用for循环的方式如下
 
需要注意的是把鼠标放在机构上面的时候,会显示一个机构标签图片的文字效果,而这个字段在model中是没有的,所以需要在organization/models.py->CourseOrg中定义字段
 
 
5. 当登陆后再跳转到首页时,发现我们的定义的图片都不能正常显示了
查看登陆逻辑users/views.py->LoginView
当登陆后我们直接render到了index.html页面,但是此时并没有把我们for循环中的图片传过来, 只是把login_form传递到了index页面。需要改写return为和LogoutView相同的逻辑
 
 
 
 
二. 全局404和500页面配置,实验不成功
 
1. mxonline/urls.py中添加
2. 编写view
def page_not_found(request):
    #全局404处理函数
    from django.shortcuts import render_to_response
    response = render_to_response('404.html', {})
    response.status_code = 404
    return response
3. settings.py中修改debug为false,表示开启生产模式并修改允许访问的用户。这样才能访问404页面
但是我们把DEBUG设置为False后,我们之前settings.py中设定的静态文件查找位置就会失效,也就是下面的配置失效。因为生产模式下我们一般都是用nginx或者apache来存储静态文件
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, "static"),)
 
 
 
 
 
三. xadmin进阶操作
 
1. 让后台相关信息排序,只读,不显示。以course为例,在course/adminx.py->class CourseAdmin中增加如下代码
 
 
2. 当新增课程时,其中的课程机构选项是下拉式的,如果课程机构过多,就需要等待把全部信息拿到下拉菜单中,这里想取消下拉菜单,改为自定义搜索方式
course中有一个外键指向课程机构,所以需要在organization/adminx->class CourseOrgAdmin中增加
 
 
3. 课程->章节->视频是层级关系,在课程中不能直接添加视频信息,有点不方便。那么能不能直接在课程中添加视频信息呢?暂时不能。
现在只能实现课程里添加章节信息,章节里添加视频信息,也就是只能实现1层的数据添加
course/adminx.py中添加
然后在此文件中的class CourseAdmin(object)中添加
 
 
同样可以在课程中添加课程资源,在course/adminx.py中添加
然后inlines再加一个元素就好
 
 
4. 在后台直接编辑数据库中的字段
course/adminx.py->CourseAdmin中添加如下字段,即可在后台修改课程degree, desc
 
 
5. 我们在course的model中定义了一个章节数的函数
这个函数也是可以像其他变量一样显示在xadmin的list_display中,但是此时显示的名字是get_zj_nums
能不能改个名字呢,只需要在原函数下加一行如下代码即可
 
 
6. 自定义跳转,可在course/modes.py->class Course定义如下内容,然后把go_to添加到course/xadmin.py ->CourseAdmin的list_dispaly字段中,效果就是在每一个课程中多一个跳转的列
 
 
7. 列表页定时刷新字段
course/adminx.py->class CourseAdmin中添加字段
refresh_times = [3,5]
就会在后台页面上增加一个刷新按钮,可以选择是每3秒刷新还是每5秒刷新
 
 
8. 富文本
 
8.1 Ueditor安装注册
1)到github中搜索djangoueditor,发现一个liyaopinner/DjangoUeditor3_imooc
下载后把DjangoUeditor文件夹放在python指定目录下,我的是D:\Program Files\python3.5\Lib\site-packages
2)settings.py中注册DjangoUeditor
3) mxonline/urls.py中配置
4). courses/models.py->Course中的detail字段使用富文本来编辑
 
 
8.2 xadmin相关配置
1)在xadmin/plugins下复制老师的ueditor.py文件,然后在xadmin/plugins/__inti__.py文件中加入ueditor
2)courses/adminx.py->class CourseAdmin添加字段
3)在course-detail.html页面显示富文本的部分取消自动转义
 

mxonline实战16:首页配置和xadmin进阶,Ueditor的更多相关文章

  1. 【SSH网上商城项目实战16】Hibernate的二级缓存处理首页的热门显示

    转自:https://blog.csdn.net/eson_15/article/details/51405911 网上商城首页都有热门商品,那么这些商品的点击率是很高的,当用户点击某个热门商品后需要 ...

  2. 4、Django实战第4天:xadmin快速搭建后台管理系统

    Django默认为我们提供了后台管理系统admin, urls.py中配置的第一条就是访问后台管理系统admin的 urlpatterns = [ url(r'^admin/', admin.site ...

  3. iView 实战系列教程(21课时)_1.iView 实战教程之配置篇

    1.iView 实战教程之配置篇 点击添加插件,. 选中后安装 全部导入还是按需导入. 2.是否需要自定义主题变量 3.多语言的设置. 这里我们全部选择为默认 然后点击继续. 启动项目 入口文件导入了 ...

  4. Cordova - 使用Cordova开发iOS应用实战1(配置、开发第一个应用)

    Cordova - 使用Cordova开发iOS应用实战1(配置.开发第一个应用) 现在比较流行使用 html5 开发移动应用,毕竟只要写一套html页面就可以适配各种移动设备,大大节省了跨平台应用的 ...

  5. Django配置后台xadmin管理界面

    Django配置后台xadmin管理界面 python版本3.6.5 Django版本1.10.8(刚开始是2.1.5,由于各种错误,改成了低版本) 1.xadmin的安装,下载地址https://g ...

  6. [实战]MVC5+EF6+MySql企业网盘实战(16)——逻辑重构3

    写在前面 本篇文章将新建文件夹的逻辑也进行一下修改. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MySql企业网盘实战(1) [实战]MVC5 ...

  7. Debian 16.04 配置双网卡绑定bond

    Debian 16.04 配置双网卡绑定bond Debian 16.04 bonding多网卡配置 安装负载均衡软件 fenslave root@ubuntu:~# apt-get install ...

  8. 个人博客开发之xadmin与ueditor集成

    项目源码下载:http://download.vhosts.cn 1. xadmin 添加ueditor 插件 vim extra_apps\xadmin\plugins\ueditor.py #没有 ...

  9. Thinkphp 3.2.3配置百度编辑器(UEditor)

    Thinkphp 3.2.3配置百度编辑器(UEditor) 1.把百度编辑器放到项目的Public目录下 命名为:UEditor 2.找到thinkphp框架系统自带类中的Html.class.ph ...

随机推荐

  1. js练习 closure

    window.onload = function() {            for (var i = 1; i < 4; i++) {                var id = doc ...

  2. Axure 原型图 (转)

    Axure RP是很有名的一个界面原型设计工具,可以灵活快捷的对C/S.B/S程序设计原型. 近期我要开发一个Android客户端,也打算使用Axure RP设计原型. 下载地址:http://pan ...

  3. java解析json串获取key和value

    网上例子巨多,纯属个人笔记: JSONObject maleArray = maleObject.getJSONObject("extension"); Iterator<S ...

  4. Mybatis中DAO层接口没有写实现类,Mapper中的方法和DAO接口方法是怎么绑定到一起的

    参考mybatis入门基础(二)----原始dao的开发和mapper代理开发 其实也就是通过接口名与mapper的id绑定在一起,通过SQL去写实现类,返回数据.

  5. unity平行光太亮?物体发白?可能你使用了2个或多个平行光

    unity平行光太亮?物体发白?可能你使用了2个或多个平行光 今天做项目时就遇到了这个问题,光亮得让物体发白 发现加载的场景 里面有个 平行光,删了就好了 要是感觉还是太亮,就把主平行光的Intens ...

  6. 手动制作CA证书

    一.安装 CFSSL 证书下载官方地址:https://pkg.cfssl.org #下面三个安装包,无需下载,之前百度云中的压缩包中都有[root@linux-node1 ~]# cd /usr/l ...

  7. Qt Customize QVariant

    Customize QVariant #include <QCoreApplication> #include <QVariant> #include <QDebug&g ...

  8. CentOS 6.5网络配置静态IP地址

    打开VMvare,并进入虚拟机 2 输入用户名,按回车键,再输入密码,登录系统 3 进行网络配置前,需要确认几个事情: 1. 网络适配器模式是否为NAT模式 右键虚拟机,或者点击VMvare菜单栏中的 ...

  9. DALSA网口线扫相机SDK开发详解例程(C#版)

    首先吐槽一句,官方的demos写的真的不好,坑爹啊.对于小白来说,开发官方demos为我所用太难了.为什么呢?因为它Dalsa的DALSA.SaperaLT.SapClassBasic.dll中,不仅 ...

  10. JavaScript Math.floor() 方法

    定义和用法: floor() 方法可对一个数进行下舍入. 语法: Math.floor(x); x:必须参数,可以是任意数值或表达式: 返回值: 小于等于 x,且与 x 最接近的整数. 说明: flo ...