コード例 #1
0
    def get(self,request,course_id):
        course = Course.objects.get(id=course_id)
        lesson = Lesson.objects.filter(Course=course)
        course_resource = CourseResource.objects.filter(Course=course)
        ##########################学过该课程的同学还学过##########################
        #利用opreation-UserCourse记录的用户行为,在用户选择学习后,需要将用户行为存储进入该数据库中

        Other_User_List = UserCourse.objects.filter(Course=course)  #利用课程数据遍历出所有学习该课程下的用户
        Related_Courses = set()
        Related_Courses_id = set()
        for u in Other_User_List:
            user_courses = UserCourse.objects.filter(User_id=u.id)    #遍历所有用户,并利用用户id遍历出所有的course,注意起名字不要重复了
            for c in user_courses:
                if c.Course_id not in Related_Courses_id:   #利用课程id进行去重
                    Related_Courses.add(c)
                    Related_Courses_id.add(c.Course_id)

        ##########################实现用户学习行为的记录#################################
        user = request.user
        exit_recorder = UserCourse.objects.filter(User=user,Course=course)
        if not exit_recorder:
            user_cour = UserCourse()
            user_cour.Course = course
            user_cour.User = user
            user_cour.save()
        ##################################################################################
        return render(request, 'course_video.html',{'course':course,'lesson':lesson,'course_resource':course_resource,'Related_Courses':Related_Courses,})
コード例 #2
0
ファイル: views.py プロジェクト: luzhisheng/mklearn
    def get(self, request, video_id):
        video = Video.objects.get(id=int(video_id))
        course = video.lesson.course
        course.students += 1
        course.save()

        # 查询用户是否关联了课程
        user_cousers = UserCourse.objects.filter(user=request.user,
                                                 Course=course)
        if not user_cousers:
            user_couser = UserCourse()
            user_couser.user = request.user
            user_couser.Course = course
            user_couser.save()

        # 该课的同学还学过
        user_cousers = UserCourse.objects.filter(Course=course)
        user_ids = [user_couser.user.id for user_couser in user_cousers]
        # 这样的写法user_id就可以指定传入一个id,而不是一个对象
        # __in 表示传入的是个list
        all_user_courses = UserCourse.objects.filter(user_id__in=user_ids)
        course_ids = [
            user_couser.Course.id for user_couser in all_user_courses
        ]
        relate_courses = Course.objects.filter(
            id__in=course_ids).order_by("-click_num")[:5]

        # 资料下载
        all_courseResource = CourseResource.objects.filter(course=course)

        return render(
            request, 'course-play.html', {
                'course': course,
                'all_courseResource': all_courseResource,
                'relate_courses': relate_courses,
                'video': video
            })