有关【学过该课程的同学还学过】的一段代码

class CourseVideoView(View):
    def get(self, request, course_id):
        # 传入course_id,确定是哪门课
        this_course = Course.objects.get(pk=int(course_id))

        # 课程所有的评论
        all_comment = CourseComment.objects.all()

        # 课程的老师
        course_teacher = this_course.course_teacher

        # 课程推荐↓
        # 所有含有‘course’的UserCourse的类对象
        user_courses = UserCourse.objects.filter(course=this_course.id)
        # 所有学过‘course’这门课的用户的id
        user_ids = [user_course.user.id for user_course in user_courses]
        # 如果有人学过这门课

        # 学过这门课的同学,还学过以下其他的课,选取第一个,作为推荐课程
        recommend_courses = UserCourse.objects.filter(user_id__in=user_ids).exclude(course_id=this_course.id)
        if recommend_courses:
            recommend_course = recommend_courses[0]
        else:
            # 如果没人学过这门课,就随机推荐一门课
            max_num = UserCourse.objects.count()-1
            recommend_course = UserCourse.objects.all()[randint(0,max_num)]

        return render(request, 'course-video.html', {'this_course': this_course,
                                                        'all_comment': all_comment,
                                                        'recommend_course': recommend_course,
                                                        'course_teacher': course_teacher})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值