  
      @property
      def _default_renderer(self):
          """
          Return the view's default renderer.
          """
          return self.renderers[0]
  
  
  ########## Auth Mixin ##########
 
</s> remove         Return the view's default parser.
 </s> add         Return the view's default parser class. </s> remove     # TODO: This should be simpler now.
    #       Add a handles_response() to the renderer, then iterate through the
    #       acceptable media types, ordered by how specific they are,
    #       calling handles_response on each renderer.
 </s> add  </s> remove         for accept_set in accept_sets:
            # Return any exact match
            for renderer in self.renderers:
                if renderer.media_type in accept_set:
                    return renderer

            # Return any subtype match
            for renderer in self.renderers:
                if renderer.media_type.split('/')[0] + '/*' in accept_set:
                    return renderer

            # Return default
            if '*/*' in accept_set:
                return self._default_renderer
      

 </s> add         # No acceptable renderers were found </s> remove         Return a precedence level for the media type given how specific it is.
 </s> add         Return a precedence level from 0-3 for the media type given how specific it is.
        Return the view's default renderer class.
  
      @property
      def _default_renderer(self):
          """
        Return the view's default renderer class.
          """
          return self.renderers[0]
  
  
  ########## Auth Mixin ##########
keep keep keep keep replace keep keep keep keep keep
 Renderers can now cope with parameterised args.  ResponseMixin gets cleaned up & added Renderer.can_handle_response(), mirroring Parsers.can_handle_request() 
djangorestframework/mixins.py