def dispatch(self, request_type, request, **kwargs):
        allowed_methods = getattr(self._meta, "%s_allowed_methods" % request_type, None)
        request_method = self.method_check(request, allowed=allowed_methods)

        method = getattr(self, "%s_%s" % (request_method, request_type), None)

        if method is None:
            raise ImmediateHttpResponse(response=http.HttpNotImplemented())

        self.is_authenticated(request)
        self.is_authorized(request)
        self.throttle_check(request)

        # All clear. Process the request.
        request = self.convert_post_to_put(request)
        response = method(request, **kwargs)

        # Add the throttled request.
        self.log_throttled_access(request)

        # If what comes back isn't a ``HttpResponse``, assume that the
        # request was accepted and that some action occurred. This also
        # prevents Django from freaking out.
        if not isinstance(response, HttpResponse):
            return http.HttpNoContent()

        return response
Wraps the standard delete() method to catch expected exceptions and
dataset/ETHPy150Open toastdriven/piecrust/piecrust/resources.py/Resource.dispatch--crossover with--dataset/ETHPy150Open rackspace/pyrax/pyrax/cloudnetworks.py/CloudNetworkClient.delete