  
          return self.final(request, response, *args, **kwargs)
  
      def options(self, request, *args, **kwargs):
          response_obj = {
              'name': self.get_name(),
              'description': self.get_description(),
              'renders': self._rendered_media_types,
              'parses': request._parsed_media_types,
          }
 
</s> remove         except ErrorResponse, exc:
            response = exc.response
 </s> add         except ErrorResponse, response:
            # Prepare response for the response cycle.
            self.prepare_response(response) </s> remove             response.cleaned_content = self.filter_response(response.raw_content)
 </s> add             # TODO: ugly
            if hasattr(response, 'raw_content'):
                response.raw_content = self.filter_response(response.raw_content)
            else:
                response.content = self.filter_response(response.content) </s> remove             response_obj = handler(request, *args, **kwargs)

            # Allow return value to be either HttpResponse, Response, or an object, or None
            if isinstance(response_obj, HttpResponse):
                return response_obj
            elif isinstance(response_obj, Response):
                response = response_obj
            elif response_obj is not None:
                response = Response(status.HTTP_200_OK, response_obj)
            else:
                response = Response(status.HTTP_204_NO_CONTENT)
 </s> add             # TODO: should we enforce HttpResponse, like Django does ?
            response = handler(request, *args, **kwargs)

            # Prepare response for the response cycle.
            self.prepare_response(response) </s> remove             self.initial(request, *args, **kwargs)
 </s> add             # `initial` is the opportunity to temper with the request, 
            # even completely replace it.
            self.request = request = self.initial(request, *args, **kwargs)
        content = {
  
          return self.final(request, response, *args, **kwargs)
  
      def options(self, request, *args, **kwargs):
        content = {
              'name': self.get_name(),
              'description': self.get_description(),
              'renders': self._rendered_media_types,
              'parses': request._parsed_media_types,
          }
keep keep keep keep replace keep keep keep keep keep
 Response as a subclass of HttpResponse - first draft, not quite there yet. 
djangorestframework/views.py