def put(self, request, pk): book = self.get_object(pk) serializer = BookSerializer(book, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def book_get_id_api_view(request, pk): try: book = Book.objects.get(pk=pk) except Book.DoesNotExist: return Response( {"error": { 'code': 404, "message": "Object doesnt exists" }}, status=status.HTTP_400_BAD_REQUEST) if request.method == 'GET': serializer = BookSerializer(book) return Response(serializer.data, status=status.HTTP_200_OK) elif request.method == 'PUT': serializer = BookSerializer(book, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': serializer = BookSerializer(book) book.delete() return Response(serializer.data, status=status.HTTP_302_FOUND)
def book_slug_create_api_view(request, *args, **kwargs): if request.method == 'GET': slug = kwargs.get('slug') book = Book.objects.filter(title=slug) Serializer = BookSerializer(book, many=True) return Response(Serializer.data)
def get(self, request, pk): book = self.get_object(pk) serializer = BookSerializer(book, context={'request': request}) # for hyperlinks return Response( serializer.data, status=status.HTTP_200_OK, )
def book_list_create_api_view(request): if request.method == 'GET': book = Book.objects.filter(active=True) Serializer = BookSerializer(book, many=True) return Response(Serializer.data) elif request.method == 'POST': serializer = BookSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request): serializer = BookSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def get(self, request): book = Book.objects.filter(active=True) Serializer = BookSerializer(book, many=True, context={'request': request}) return Response(Serializer.data)
def delete(self, request, pk): book = self.get_object(pk) serializer = BookSerializer(book) book.delete() return Response(serializer.data, status=status.HTTP_302_FOUND)