views.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:CourseGenie 作者: panchr 项目源码 文件源码
def modify_course(self, request, pk=None):
        pref = self.get_object()
        search_kwargs = {}
        course_name = ''

        if 'course_id' in request.query_params:
            course_name = request.query_params['course_id']
            search_kwargs['course_id'] = course_name
        else:
            course_name = request.query_params['short_name']
            short_name = COURSE_RE.match(course_name)
            if not short_name:
                raise NotAcceptable(detail='short_name field does not match pattern.')

            search_kwargs['number'] = short_name.group('num')
            search_kwargs['department'] = short_name.group('dept')
            if short_name.group('letter'):
                search_kwargs['letter'] = short_name.group('letter')

        try:
            course = Course.objects.get(**search_kwargs)
        except Course.DoesNotExist:
            raise NotFound('Course "%s" not found.' % course_name)

        if request.method == 'POST':
            # check if already there, and if so, raise 409
            if pref.bl_courses.filter(id=course.id).exists():
                raise ContentError('Course "%s" already in blacklist.' % course_name)

            pref.bl_courses.add(course)
        elif request.method == 'DELETE':
            if not pref.bl_courses.filter(id=course.id).exists():
                raise ContentError('Course "%s" not in blacklist.' % course_name)

            pref.bl_courses.remove(course)

        genie.clear_cached_recommendations(pref.profile_id)
        return Response({'success': True})
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号