def put(self, request, bucket_id, item_id, format=None):
        """
        Update a single bucket item
        :param bucket_id:
        :param item_id:

        :return: serialized data of the item
        """
        bucketlistitem = self.get_bucket_item(bucket_id, item_id)

        serializer = BucketlistItemSerializer(bucketlistitem, request.data)

        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
    def put(self, request, id, item_id, format=None):

        bucketlist = self.check_bucketlistexist(id=id)
        item = self.check_itemexist(item_id=item_id)

        update_item_value = request.data
        keyid = {unicode('bucketlist'): unicode(id)}
        update_item_value.update(keyid)

        itemserializer = BucketlistItemSerializer(item, data=update_item_value)
        if itemserializer.is_valid():
            itemserializer.save()
            return Response(itemserializer.data,
                            status=status.HTTP_201_CREATED)
        return Response(itemserializer.errors,
                        status=status.HTTP_400_BAD_REQUEST)
    def post(self, request, bucket_id, format=None):
        """
        Create a single item for a bucketlist
        :param bucket_id:
         ---
        parameters:
            - name: name
              description: name of item to be created in the bucketlist
              required: true
              type: string
              paramType: form
        """

        bucket = BucketListDetailView.get_bucket_object(bucket_id)

        serializer = BucketlistItemSerializer(data=request.data)

        if serializer.is_valid():
            serializer.save(bucketlist=bucket)
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)