コード例 #1
0
ファイル: views.py プロジェクト: wucg-python/dry1
    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
        })
コード例 #2
0
 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)
コード例 #3
0
ファイル: views.py プロジェクト: wucg-python/dry1
 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,
     })
コード例 #4
0
ファイル: views.py プロジェクト: wucg-python/dry1
 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
     })
コード例 #5
0
 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
     })