def create(self, request): serializer = ProductsSerializer(data=request.data) serializer.is_valid(raise_exception=True) serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED)
def post(self, request, format=None): """ Default post method. """ serializer = ProductsSerializer(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 put(self, request, pk, format=None): """ If its a put request, update that row. """ product = self.get_object(pk) serializer = ProductsSerializer(product, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def update(self, request, pk=None): try: product = Product.objects.get(id=pk) except Product.DoesNotExist: raise exceptions.NotFound() serializer = ProductsSerializer(instance=product, data=request.data) serializer.is_valid(raise_exception=True) serializer.save() return Response(serializer.data, status=status.HTTP_202_ACCEPTED)
def product_list(request, format=None): if request.method == 'GET': products = Product.objects.all() serializer = ProductsSerializer(products, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = ProductsSerializer(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, *args, **kwargs): image_data = request.data["images"] del request.data["images"] serializer = ProductsSerializer(data=request.data) if serializer.is_valid(): serializer.save() last_product = Products.objects.latest("created_date") update_image_data = self.get_Image_data(image_data, last_product.product_id) for single_image_data in update_image_data: serializer_image = ImageSerializer(data=single_image_data) if serializer_image.is_valid(): serializer_image.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def product_detail(request, pk, format=None): try: product = Product.objects.get(pk=pk) except Product.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': serializer = ProductsSerializer(product) return Response(serializer.data) elif request.method == 'PUT': #data = JSONParser().parse(request) serializer = ProductsSerializer(product, 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': product.delete() return HttpResponse(status=status.HTTP_204_NO_CONTENT)