Exemplo n.º 1
0
    def get(self, request, *args, **kwargs):

        book_id = kwargs.get('id')
        if book_id:
            book_obj = Book.objects.filter(pk=book_id, is_delete=False)
            if book_obj:
                book_data = BookModelSerializer(book_obj[0]).data
                return Response(
                    {
                        'status': 200,
                        'message': '查询单个图书成功',
                        'results': book_data
                    },
                    status=200)
            else:
                return Response({
                    'status': 400,
                    'message': '查询失败',
                },
                                status=400)
        else:
            book_obj_all = Book.objects.filter(is_delete=False)
            book_data = BookModelSerializer(book_obj_all, many=True).data
            return Response(
                {
                    'status': 200,
                    'message': '查询所有成功',
                    'results': book_data
                },
                status=200)
Exemplo n.º 2
0
    def get(self, request, *args, **kwargs):

        book_id = kwargs.get("id")

        if book_id:
            book = Book.objects.get(pk=book_id)

            data = BookModelSerializer(book).data

            return Response({
                "status": 200,
                "message": "查询单个图书成功",
                "results": data,
            })

        else:
            book_objects_all = Book.objects.all()

            book_ser = BookModelSerializer(book_objects_all, many=True).data

            return Response({
                "status": 200,
                "message": "查询单个图书成功",
                "results": book_ser,
            })
Exemplo n.º 3
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)
Exemplo n.º 4
0
    def put(self, request, *args, **kwargs):
        #         获得更新的图书的id
        book_id = kwargs.get('id')
        #         获取要修改的数据
        book_data = request.data
        print(book_data)

        if book_id:
            book_obj = Book.objects.filter(pk=book_id, is_delete=False)[0]
            if not book_obj:
                return Response({
                    "status": 400,
                    "message": '图书不存在'
                },
                                status=400)
        #     使用反序列器进行更新
            serializer = BookModelDeSerializer(data=book_data,
                                               instance=book_obj)
            serializer.is_valid(raise_exception=True)
            obj = serializer.save()
            return Response(
                {
                    'status': 200,
                    'message': '更新成功',
                    "results": BookModelSerializer(obj).data
                },
                status=200)
        else:
            return Response({"status": 400, "message": '无id'}, status=400)
Exemplo n.º 5
0
 def get(self, request, *args, **kwargs):
     book_id = kwargs.get('id')
     if book_id:
         book_obj = Book.objects.get(pk=book_id)
         serializer = BookModelSerializer(book_obj).data
         return Response({
             'status': 200,
             'message': '查询单个对象成功',
             'results': serializer,
         })
     else:
         all_obj = Book.objects.all()
         all_serializer = BookModelSerializer(all_obj, many=True).data
         return Response({
             'status': 200,
             'message': '查询所有对象成功',
             'results': all_serializer,
         })
Exemplo n.º 6
0
 def get(self,request,*args,**kwargs):
     book_id = kwargs.get('id')
     if book_id:
         book = Book.objects.filter(id=book_id,is_delete=False)[0]
         serialize = BookModelSerializer(book).data
         # print(serialize)
         return Response({
             'status':200,
             "message":"查询一个书籍",
             "result":serialize,
         })
     else:
         books = Book.objects.filter(is_delete=False)
         serialize = BookModelSerializer(books,many=True).data
         return Response({
             'status': 200,
             "message": "查询所有书籍",
             "result": serialize,
         })
Exemplo n.º 7
0
    def post(self, request, *args, **kwargs):
        request_data = request.data
        serializer = BookDeModelSerializer(data=request_data)
        serializer.is_valid(raise_exception=True)
        book_obj = serializer.save()

        return Response({
            "status": 200,
            "message": "添加图书成功",
            "results": BookModelSerializer(book_obj).data,
        })
Exemplo n.º 8
0
    def get(self, request, *args, **kwargs):
        book_id = kwargs.get("id")
        if book_id:

            book_obj = Book.objects.get(pk=book_id)
            book_data = BookModelSerializer(book_obj).data
            return Response({
                "status": status.HTTP_200_OK,
                "message": "查询单个图书成功",
                # "results":book_obj
                "results": book_data
            })

        else:
            book_list = Book.objects.filter(is_delete=False)
            book_list_data = BookModelSerializer(book_list, many=True).data
            return Response({
                "status": status.HTTP_200_OK,
                "message": "查询所有图书成功",
                # "results": book_list
                "results": book_list_data
            })
Exemplo n.º 9
0
    def post(self, request, *args, **kwargs):
        request_data = request.data
        print(request_data)
        serializer = BookDeModelSerializer(data=request_data)  #要加data=,否则报错

        serializer.is_valid(raise_exception=True)  #直接将异常抛出来
        book_obj = serializer.save()
        #原来是手动抛异常,现在直接加个参数就行了
        #if serializer.is_valid()...
        #raise....

        return Response({
            "status": 200,
            "message": "添加图书成功",
            "result": BookModelSerializer(book_obj).data,
        })
Exemplo n.º 10
0
    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
        })
Exemplo n.º 11
0
 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,
     })
Exemplo n.º 12
0
    def post(self, request, *args, **kwargs):

        book_data = request.data
        if isinstance(book_data, dict) and book_data != {}:
            many = False
        elif isinstance(book_data, list) and book_data != []:
            many = True
        else:
            return Response({
                'status': 400,
                'message': '参数格式有误',
            }, status=400)

        book_ser = BookModelDeSerializer(data=book_data, many=many)
        book_ser.is_valid(raise_exception=True)
        book_obj = book_ser.save()
        return Response(
            {
                'status': 200,
                'message': '新增成功',
                'results': BookModelSerializer(book_obj, many=many).data
            },
            status=200)
Exemplo n.º 13
0
 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
     })
Exemplo n.º 14
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
     })
Exemplo n.º 15
0
 def get(self, request):
     top_three = Book.objects.order_by('price')[:3]
     serializer = BookModelSerializer(top_three, many=True)
     return Response(serializer.data)
Exemplo n.º 16
0
 def get(self, request, book_id):
     book = self.get_object(book_id)
     serializer = BookModelSerializer(book)
     return Response(serializer.data)