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, })
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 })
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, })
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/")
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')
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, })