def course_list(request): if request.method == 'GET': courses = Course.objects.all() title = request.GET.get('title', None) if title is not None: courses = courses.filter(title__icontains=title) courses_serializer = CourseSerializer(courses, many=True) return JsonResponse(courses_serializer.data, safe=False) # 'safe=False' for objects serialization elif request.method == 'POST': course_data = JSONParser().parse(request) course_serializer = CourseSerializer(data=course_data) if course_serializer.is_valid(): course_serializer.save() return JsonResponse(course_serializer.data, status=status.HTTP_201_CREATED) return JsonResponse(course_serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': count = Course.objects.all().delete() return JsonResponse( { 'message': '{} Courses were deleted successfully!'.format( count[0]) }, status=status.HTTP_204_NO_CONTENT)
def course_detail(request, pk): """ 获取、更新、删除单条课程 :param request: :param pk: :return: """ try: course = Course.objects.get(pk=pk) except Course.DoesNotExist: return Response(data={"msg": "没有此课程信息"}, status=status.HTTP_404_NOT_FOUND) else: if request.method == "GET": ser = CourseSerializer(instance=course) return Response(data=ser.data, status=status.HTTP_200_OK) elif request.method == "PUT": ser = CourseSerializer(instance=course, data=request.data) if ser.is_valid(): ser.save() return Response(data=ser.data, status=status.HTTP_200_OK) return Response(data=ser.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == "DELETE": course.delete() return Response(status=status.HTTP_204_NO_CONTENT)
def put_course(self, ex_id: int, data: dict): des = CourseRepository.get_course_detail(self, ex_id=ex_id) serializer = CourseSerializer(des, data=data) if serializer.is_valid(): serializer.save() return CourseRepository.put_course(self, ex_id=ex_id, data=data) return serializer.errors, status.HTTP_400_BAD_REQUEST
def createcourse(request): course_data = JSONParser().parse(request) course_serializer = CourseSerializer(data=course_data) if course_serializer.is_valid(): course_serializer.save() return JsonResponse(course_serializer.data, status=status.HTTP_201_CREATED) return JsonResponse(course_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def put(self, request, pk): obj = self.get_object(pk=pk) if obj: ser = CourseSerializer(instance=obj, data=request.data) if ser.is_valid(): ser.save() return Response(data=ser.data, status=status.HTTP_200_OK) return Response(data=ser.errors, status=status.HTTP_400_BAD_REQUEST) return Response(data={"msg": "没有此课程信息"}, status=status.HTTP_404_NOT_FOUND)
def updatecourse(request, id): try: course = Course.objects.get(id=id) except Course.DoesNotExist: return JsonResponse({'message': 'The tutorial does not exist'}, status=status.HTTP_404_NOT_FOUND) course_data = JSONParser().parse(request) course_serializer = CourseSerializer(course, data=course_data) if course_serializer.is_valid(): course_serializer.save() return JsonResponse(course_serializer.data) return JsonResponse(course_serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(request, cou_id): try: cou = course.objects.get(pk=cou_id) except cou.DoesNotExist: errors = "Error!" return HttpResponse(status=400) # if request.method == 'GET': # serializer = CourseSerializer(cou) # return JSONResponse(serializer.data) data = JSONParser().parse(request) serializer = CourseSerializer(cou, data=data) if serializer.is_valid(): serializer.save() return JSONResponse(serializer.data) return JSONResponse(serializer.errors, status=400)
def course_list(request): """ 获取所有课程信息或新增单条课程信息 :param request: :return: """ if request.method == "GET": ser = CourseSerializer(instance=Course.objects.all(), many=True) return Response(data=ser.data, status=status.HTTP_200_OK) elif request.method == "POST": ser = CourseSerializer(data=request.data, partial=True) if ser.is_valid(): ser.save(teacher=request.user) return Response(data=ser.data, status=status.HTTP_201_CREATED) return Response(data=ser.errors, status=status.HTTP_400_BAD_REQUEST)
def post_course(self, data: dict): serializer = CourseSerializer(data=data) if serializer.is_valid(): serializer.save() return CourseRepository.post_course(self, data=data) return serializer.errors, status.HTTP_400_BAD_REQUEST
def post(self, request): ser = CourseSerializer(data=request.data) if ser.is_valid(): ser.save(teacher=self.request.user) return Response(data=ser.data, status=status.HTTP_201_CREATED) return Response(data=ser.errors, status=status.HTTP_400_BAD_REQUEST)