def patch(self, request, *args, **kwargs): ''' 更新单个 id kwargs.get('id') 更新多个 [{},{},{}] :param request: :param args: :param kwargs: :return: ''' book_id = kwargs.get('id') request_data = request.data # 修改单个 if book_id and isinstance(request_data, dict): ids = [book_id] request_data = [request_data] elif not book_id and isinstance(request_data, list): ids = [] for i in request_data: id = i.pop('id', None) if id: ids.append(id) else: return Response({'status': 400, "message": "id不存在"}) else: return Response({"status": 400, "message": "格式错误"}) books_obj = [] new_data = [] for index, id in enumerate(ids): print(index, id) try: book_obj = Book.objects.get(id) print(book_obj) books_obj.append(book_obj) new_data.append(request_data[index]) except: continue serializer = BookModelSerializer(data=new_data, instance=books_obj, partial=True, many=True) serializer.is_valid(raise_exception=True) datas = serializer.save() return Response({ "status": 200, "message": "成功", "result": BookModelSerializer(datas).data })
def post(self, request): serializer = BookModelSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response({'error': serializer.errors}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def post(self, request, *args, **kwargs): request_data = request.data print(request_data) if isinstance(request_data, dict): many = False elif isinstance(request_data, list): many = True else: return Response({"status": 400, "message": "添加失败"}) serialize = BookModelSerializer(data=request_data, many=many) serialize.is_valid(raise_exception=True) book = serialize.save() return Response({ 'status': 200, "message": "添加书籍", "result": BookModelSerializer(book, many=many).data, })
def put(self, request, *args, **kwargs): # 获取到修改的值 request_data = request.data # 获取到被修改的对象 book_id = kwargs.get('id') try: book_obj = Book.objects.get(id=book_id) except: return Response({"status": 400, "message": "对象不存在"}) serializer = BookModelSerializer(data=request_data, instance=book_obj, partial=True) serializer.is_valid(raise_exception=True) book = serializer.save() return Response({ "status": 200, "message": "修改成功", "result": BookModelSerializer(book).data })
def post(self, request, *args, **kwargs): request_data = request.data if isinstance(request_data, dict): many = False elif isinstance(request_data, list): many = True else: return Response({ 'status': 400, 'message': '参数有误', }) print(request_data) serializer = BookModelSerializer(data=request_data, many=many) serializer.is_valid(raise_exception=True) book_obj = serializer.save() return Response({ 'status': 200, 'message': '新增成功', 'results': BookModelSerializer(book_obj, many=many).data })