一.开始学习模块
- 将course_video页面放入到项目中
页面链接:https://pan.baidu.com/s/1GcBTvo5Jy4PytgL9Va6snw
提取码:up7i
- 配置路由
from apps.courses.views import CourseListView,CourseDetailView,CourseLessonView
...
url(r'^(?P<course_id>\d+)/lesson/$', CourseLessonView.as_view(), name='lesson'),
- 打开apps/course/views.py文件填写视图
class CourseLessonView(View):
"""
章节信息
"""
login_url = '/login/'
def get(self, request, course_id, *args, **kwargs):
course = Course.objects.get(id=int(course_id))
# 点击到课程 的详情就记录一次点击数
course.click_nums += 1
course.save()
#该课的同学还学过
# 查询当前用户都学了那些课
user_courses = UserCourse.objects.filter(course=course)
user_ids = [user_course.user.id for user_course in user_courses]
print(user_ids)
# 查询这个用户关联的所有课程
all_courses = UserCourse.objects.filter(user_id__in=user_ids).order_by("-course__click_nums")[:5]
return render(request, 'course-video.html',
{"course": course,
})
-
模板继承,打开course_video
别忘记将css样式填入里面
{% block custom_css %}
<link rel="stylesheet" type="text/css" href="/static/css/muke/base.css"/>
<link rel="stylesheet" type="text/css" href="/static/css/muke/common-less.css"/>
<link rel="stylesheet" type="text/css" href="/static/css/muke/course/learn-less.css"/>
<link rel="stylesheet" type="text/css" href="/static/css/aui.css"/>
<link rel="stylesheet" type="text/css" href="/static/css/mooc.css"/>
<link rel="stylesheet" type="text/css" href="/static/css/muke/course/common-less.css">
{% endblock %}
-
打开course_video.html改写一些信息
-
刷新浏览器页面
-
进入到xadmin后台管理页面,添加章节信息
-
打开course_video.html,修改课程
找到这里删除到只剩一个
先写一个循环
-
进入到xadmin后台管理页面,添加视频信息
-
打开course_video.html,修改视频章节
-
刷新页面
二.退出登录
-
打开templates/base.html文件
- 打开MXOline/urls.py文件
from apps.users.views import LoginView,LogoutView
...
path('logout/',LogoutView.as_view(), name ='logout'),
- 打开MXOline/user/views.py
from django.contrib.auth import authenticate, login,logout
...
class LogoutView(View):
def get(self, request, *args, **kwargs):
logout(request)
# 重定向到网站首页
return HttpResponseRedirect(reverse("index"))
-
刷新页面
三.开始学习的时候进行登陆
- 打开apps/course/views.py文件
from django.contrib.auth.mixins import LoginRequiredMixin
...
class CourseLessonView(LoginRequiredMixin,View):
"""
章节信息
"""
login_url = '/login/'
- 打开apps/user/views.py文件
if request.user.is_authenticated:
return HttpResponseRedirect(reverse("index"))
next = request.GET.get("next", "")
return render(request, 'login.html', {"next": next})
...
# 取一下next值
next = request.GET.get("next", "")
if next:
return HttpResponseRedirect(next)
-
打开templates/login.html文件
-
刷新页面,退出登录以后点击开始登陆会跳转到登陆页面,登陆以后会跳转到章节信息界面
四.资料下载
-
进入到xadmin后台管理页面,添加课程资源
-
我们可以在项目里面找到我们的这个压缩包
- 打开apps/courses/views.py文件
from apps.courses.models import CourseResource
...
course_resource = CourseResource.objects.filter(course=course)
return render(request, 'course-video.html',
{"course": course,
"course_resource":course_resource,
- 打开course_video.html文件
{% for resource in course_resource %}
<li>
<span ><i class="aui-iconfont aui-icon-file"></i>{{ resource.name }}</span>
<a href="{{ resource.file.url }}" class="downcode" target="_blank" download="" data-id="274" title="">下载</a>
</li>
{% endfor %}
-
刷新页面
五.讲师提示
-
打开course_video.html文件
-
刷新页面
六.该课的同学还学过
-
打开xadmin后台管理,添加用户课程
- 打开apps/courses/views.py文件
#该课的同学还学过
# 查询当前用户都学了那些课
user_courses = UserCourse.objects.filter(course=course)
user_ids = [user_course.user.id for user_course in user_courses]
print(user_ids)
# 查询这个用户关联的所有课程
all_courses = UserCourse.objects.filter(user_id__in=user_ids).order_by("-course__click_nums")[:5]
# 过滤掉当前课程
related_courses = []
for item in all_courses:
if item.course.id != course.id:
related_courses.append(item.course)
-
打开course_video.html文件
{% for course in related_courses %}
<li class="curr">
<a href="{% url 'course:detail' course.id %}" target="_blank">
<img src="{{ course.image.url }}" alt="{{ course.name }}">
<span class="name autowrap">{{ course.name }}</span>
</a>
</li>
{% endfor %}
-
刷新页面
七.授课机构
- 打开course_detail.html文件进行修改
<div class="right">
<div class="head">
<h1>授课机构</h1>
<p>{{ course.course_org.desc }}</p>
</div>
<div class="pic">
<a href="/company/14/">
<img width="150" height="80" src="{{ course.course_org.image.url }}"/>
</a>
</div>
<a href="/company/14/">
<h2 class="center" title="{{ course.course_org.name }}">{{ course.course_org.name }}</h2>
</a>
<div class="btn notlogin
" data-favid="14" id="jsRightBtn">
{% if has_fav_org %}已收藏{% else %}收藏{% endif %}
</div>
<div class="clear">
<ul>
<li>
<span>课 程 数: {{ course.course_org.course_set.all.count }}</span>
</li>
<li>
<span>教 师 数: {{ course.course_org.teacher_set.all.count }}</span>
</li>
<li>所在地区: {{ course.course_org.address }}</li>
{% if course.course_org.is_gold %}
<li>认 证:
<img title="金牌机构" , src="{% static 'images/gold.png' %}"/>
</li>
{% endif %}
在最前面加上这句:
{% load staticfiles %}
-
刷新页面
八.相关课程推荐
1.单标签进行课程推荐
- 打开apps/courses/views.py文件
#课程推荐
#通过课程的单标签进行课程推荐
tag = course.tag
related_courses = []
if tag:
related_courses = Course.objects.filter(tag=tag).exclude(id__in=[course.id])[:3]
print(related_courses)
...
"related_courses":related_courses
- 打开course_detail.html文件
{% for course in related_courses %}
<dl>
<dt>
<a target="_blank" href="">
<img width="240" height="220" class="scrollLoading"
src="{{ course.image.url }}"/>
</a>
</dt>
<dd>
<a target="_blank" href=""><h2> {{ course.name }}</h2></a>
<span class="fl">学习时长:<i class="key">{{ course.learn_times }}</i></span>
</dd>
</dl>
{% endfor %}
-
刷新页面:
2.通过 CourseTag类进行课程推荐
-
打开xadmin的后台管理界面,添加课程标签
- 打开apps/courses/views.py文件
tags = course.coursetag_set.all()
# 遍历
tag_list = [tag.tag for tag in tags]
course_tags = CourseTag.objects.filter(tag__in=tag_list).exclude(course__id=course.id)
related_courses = set()
for course_tag in course_tags:
related_courses.add(course_tag.course)
print(related_courses)
...
"related_courses":related_courses
-
刷新页面
以上项目代码可在我的GitHub上面查看:
(此文章仅作为个人学习笔记使用,如有错误欢迎指正~)
网友评论