コード例 #1
0
    def get(self, request, course_id):
        try:
            exits_user_course = UserCourse.objects.filter(user=request.user,
                                                          course_id=course_id)
            if not exits_user_course:
                user_course_add = UserCourse()
                user_course_add.user = request.user
                user_course_add.course_id = course_id
                user_course_add.save()

            course = Course.objects.get(id=course_id)
            course.students += 1
            course.save()
            user_course = UserCourse.objects.filter(course_id__in=course_id)
            user_ids = [
                user.user_id for user in user_course
                if user.user_id != request.user.id
            ]
            user_course = UserCourse.objects.all().filter(user_id__in=user_ids)
            all_courses_ids = [
                x.course_id for x in user_course if x.course_id != course_id
            ]
            print('***************************\n', all_courses_ids)
            all_courses = Course.objects.all().filter(id__in=all_courses_ids)
            print('***************************\n', all_courses)
        except:
            print('没有课程')
        return render(request, 'course-video.html', {
            'course': course,
            'all_courses': all_courses,
        })
コード例 #2
0
 def get(self, request, course_id):
     # 登陆设置, 查询用户是否与课程关联
     # user_courses = UserCourse.objects.filter(course_id=course_id)
     # user_ids = [user_course.user.id for user_course in user_courses]
     # related_user = user_courses.filter(user_id__in=user_ids)
     related_user_course = UserCourse.objects.filter(user=request.user, course_id=course_id)
     if not related_user_course:
         related_user_course = UserCourse()
         related_user_course.user = request.user  # --->related_user_course = UserCourse(user=request.user, course_id=course_id)
         related_user_course.course_id = course_id  # --->related_user_course.save
         related_user_course.save()
     course = Course.objects.get(id=course_id)
     lessons = course.lesson_set.all()
     resources = course.courseresource_set.all()
     teacher = course.teacher
     user_courses = UserCourse.objects.filter(course=course)
     user_ids = [user_course.user.id for user_course in user_courses]
     all_user_courses = UserCourse.objects.filter(
         user_id__in=user_ids)  # user_ids必须是一个序列, user_id__in找出所有user_id在user_ids列表中
     course_ids = [user_course.course.id for user_course in all_user_courses]
     courses = Course.objects.filter(id__in=course_ids).order_by('-click_nums')[:3]
     # related_courses = Course.objects.filter(tag=course.tag)
     return render(request, template_name='course-video.html', context={
         'course': course,
         'course_id': course_id,
         'lessons': lessons,
         'resources': resources,
         'teacher': teacher,
         'related_courses': courses
     })
コード例 #3
0
def lesson(request, course_id):

    if not request.user.is_authenticated():
        return HttpResponseRedirect(reverse('users:login'))

    user_course = UserCourse()

    #我的课程添加
    course_ids = ''

    for all_courses_ids in UserCourse.objects.filter(user_id=request.user.id):
        course_ids += str(all_courses_ids.course_id)

    if course_id not in course_ids:
        user_course.user_id = int(request.user.id)
        user_course.course_id = int(course_id)
        user_course.save()

    course = Course.objects.get(pk=int(course_id))

    course.students += 1
    course.save()

    all_lessons = Lesson.objects.filter(course_id=course_id)
    all_resources = CourseResource.objects.filter(course_id=course_id)
    return render(
        request, 'course-video.html', {
            'course': course,
            'all_lessons': all_lessons,
            'all_resources': all_resources,
        })
コード例 #4
0
 def get(self, request, course_id):
     Flag = 3
     id = request.session.get("id")
     user_obj = UserProfile.objects.filter(id=id).first()
     if user_obj:
         #开始读取页面
         course_obj = Course.objects.filter(id=course_id).first()
         uc_obj = UserCourse.objects.filter(user_id=id,
                                            course_id=course_id).first()
         if uc_obj:
             pass  #已经在学习
         else:
             u_course = UserCourse()
             u_course.user_id = id
             u_course.course_id = course_id
             u_course.save()
             #课程表学习人数加1
             course_obj.students += 1
             course_obj.save()
         #资源下载
         all_resource = CourseResource.objects.filter(
             course_id=course_id).all()
         if course_obj:
             #存在课程
             return render(request, "course-video.html", locals())
         else:
             return redirect("/course/list/", locals())
     else:
         return redirect("/login/")
コード例 #5
0
    def post(self, request):
        user_id = request.user.id
        course_id = request.POST.get('course_id', 0)

        course = Course.objects.get(id=course_id)

        #增加学习课程的数据记录
        if request.user.is_authenticated():
            user_course = UserCourse()

            #判断是否存在记录
            exist_records = UserCourse.objects.filter(user_id=int(user_id),
                                                      course_id=int(course_id))
            if not exist_records:
                user_course.user_id = user_id
                user_course.course_id = course_id
                user_course.save()
                #更新课程学习人数
                students = UserCourse.objects.filter(
                    course_id=int(course_id)).count()
                course.students = students
                course.save()

                return HttpResponse('{"status":"transfer","msg":"正在学习"}',
                                    content_type='application/json')
            else:
                exist_records.delete()

                # 更新课程学习人数
                students = UserCourse.objects.filter(
                    course_id=int(course_id)).count()
                course.students = students
                course.save()

                return HttpResponse('{"status":"concel","msg":"我要学习"}',
                                    content_type='application/json')

        else:
            return HttpResponse('{"status":"fail","msg":"用户未登录"}',
                                content_type='application/json')
コード例 #6
0
    def get(self, request, course_id):
        cur_page1 = "video"
        # 点击我要学习后,给表添加用户课程关系
        if not UserCourse.objects.filter(user=request.user,
                                         course_id=course_id):
            user_course = UserCourse()
            user_course.user = request.user
            user_course.course_id = course_id
            user_course.save()

        course = Course.objects.filter(id=course_id).first()
        lessons = course.get_lesson()

        # 课程资源
        course_resource = CourseResource.objects.filter(
            course_id=course_id).first()
        # 学过该课程的同学还学过的课程
        user_courses = UserCourse.objects.filter(course_id=course_id)
        user_ids = [user_course.user_id for user_course in user_courses]
        all_user_courses = UserCourse.objects.filter(
            user_id__in=user_ids)  # 获取相关用户所有课程
        course_ids = [
            user_course.course_id for user_course in all_user_courses
        ]
        relate_courses = Course.objects.filter(
            id__in=course_ids).order_by("-students")[:3]

        return render(
            request, 'course-video.html', {
                "cur_page1": cur_page1,
                "course": course,
                "lessons": lessons,
                "course_resource": course_resource,
                "user_courses": user_courses,
                "relate_courses": relate_courses,
            })