对应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. Display file information in the document window

    [Display file information in the document window] The status bar is located at the bottom of every d ...

  2. 数据库 alert.log 日志中出现 "[Oracle][ODBC SQL Server Wire Protocol driver][SQL Server] 'RECOVER'"报错信息

    现象描述: (1).数据库通过调用透明网络实现分布式事务,但透明网关停用后,失败的分布式事务并未清理. (2).数据库 alert 日志 Thu Sep 06 06:53:00 2018 Errors ...

  3. docker1.9 network跨主机安装

    背景:在跨host中,如果docker任何一个重启或者销毁,docker暴露的端口以及ip将可能重新配置,这个时候需要重新记录ip跟端口.在生产环境中往往需要一个固定的ip以及端口去跟容器通信.例如m ...

  4. ios 获取当前wifi名称

    ios5之前可以通过读取配置文件获取,ios5以后苹果修改wifi列表文件位置,只有root权限才可以读取. ios4:/System/Library/SystemConfiguration/WiFi ...

  5. NoClassDefFoundError: net/sf/ezmorph/Morpher

    使用import net.sf.json.JSONObject; json-lib-2.4-jdk15.jar时报这个错,各种查找,受到https://blog.csdn.net/chenleixin ...

  6. Qt的安装和使用中的常见问题(简略版)

    对于喜欢研究细节的朋友,可参考Qt的安装和使用中的常见问题(详细版). 目录 1.引入 2.Qt简介 3.Qt版本 3.1 查看安装的Qt版本 3.2 查看当前项目使用的Qt版本 3.3 查看当前项目 ...

  7. python socket编程入门(编写server实例)-乾颐堂

    python 编写server的步骤: 1. 第一步是创建socket对象.调用socket构造函数.如: socket = socket.socket( family, type ) family参 ...

  8. marioTcp

    https://github.com/nicholaszj/marioTcp MarioTCP MarioTCP 是使用libevent模型来建立的一个性能强大的TCP服务器. 1:Getting S ...

  9. Nginx搭建后,图片存储在Tomcat上,前端无法回显图片问题

    一.Nginx与Tomcat连接搭建的环境,Nginx设置了前端的访问路径为 (1)前端代码配置: root /usr/local/nginx/html; index index.html index ...

  10. CodeForces 688A Opponents (水题)

    题意:给定 n 行数,让你找出连续最多的全是1的个数. 析:好像也没什么可说的,那就判断一下,并不断更新最大值呗. 代码如下: #include <iostream> #include & ...