对应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. NBU 还原windows ORACLE数据库(FP)

    二.基于差异备份恢复7月20日星期四早上8:30分数据1.查询所需要的归档日志(因为要返回20号刂8:30分的数据,所以控制 文件要晚于这个点,即取21号凌晨2点备份的控制文件) bplist -C ...

  2. 如何在eclipse中添加android ADT(转)

    转自: http://jingyan.baidu.com/article/b0b63dbfa9e0a74a4830701e.html 对于程序开发的学者来说,eclipse并不陌生,它为我们提供了一个 ...

  3. SNAT和DNAT的区别

    SNAT: Source Network Address Translation,是修改网络包源ip地址的.DNAT: Destination Network Address Translation, ...

  4. Jenkins修改端口号(成功率高)

    转载:http://blog.csdn.net/dzh0622/article/details/52470634 Jenkins默认的端口号是8080,修改方法: 1. 打开终端,cd 到Jenkin ...

  5. RNA -seq

    RNA -seq RNA-seq目的.用处::可以帮助我们了解,各种比较条件下,所有基因的表达情况的差异. 比如:正常组织和肿瘤组织的之间的差异:检测药物治疗前后,基因表达的差异:检测发育过程中,不同 ...

  6. 关于删除MySQL Logs的一点记录

    五一前,一个DBA同事反馈,在日常环境中删除一个大的slow log文件(假设文件大小10G以上吧),然后在MySQL中执行flush slow logs,会发现mysqld hang住. 今天尝试着 ...

  7. jdbc注册驱动 class.forName()

    从源码 D:\Javasoftware\MySql\mysql\mysql-connector-java-5.1.7\src\com\mysql\jdbc\Driver.java class.forN ...

  8. Basic4android v3.50 发布

    这次发布的主要是debug 的增强.说实话,在这一方面B4a 比delphi做的要好.希望delphi 在新的版本里面 能进一步加强. I'm happy to release Basic4andro ...

  9. mongo学习-group操作以及java代码

    原数据: /* 1 */ { "_id" : ObjectId("552a330e05c27486b9b9b650"), "_class" ...

  10. 整理悬浮在列表中a元素时改变a元素上下边框颜色的问题。

    整理一下当悬浮在a元素上时a的上下边颜色改变,并且里面的内容不会移动,下面是PSD图效果区域: 刚开始我先给A元素加了上下边框和颜色,利用a:hover改变a元素上下的边框颜色,但是第一个a元素的下边 ...