  
          return resp
  
  
      # 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.
      def _determine_renderer(self, request):
          """
          Return the appropriate renderer for the output, given the client's 'Accept' header,
          and the content types that this mixin knows how to serve.
  
 
</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. </s> remove             return self._default_renderer
        
        # Parse the accept header into a dict of {qvalue: set of media types}
        # We ignore mietype parameters
        accept_dict = {}    
        for token in accept_list:
            components = token.split(';')
            mimetype = components[0].strip()
            qvalue = Decimal('1.0')
            
            if len(components) > 1:
                # Parse items that have a qvalue eg 'text/html; q=0.9'
                try:
                    (q, num) = components[-1].split('=')
                    if q == 'q':
                        qvalue = Decimal(num)
                except:
                    # Skip malformed entries
                    continue

            if accept_dict.has_key(qvalue):
                accept_dict[qvalue].add(mimetype)
            else:
                accept_dict[qvalue] = set((mimetype,))
        
        # Convert to a list of sets ordered by qvalue (highest first)
        accept_sets = [accept_dict[qvalue] for qvalue in sorted(accept_dict.keys(), reverse=True)]
 </s> add             return self._default_renderer(self)

        # Check the acceptable media types against each renderer,
        # attempting more specific media types first
        # NB. The inner loop here isn't as bad as it first looks :)
        #     We're effectivly looping over max len(accept_list) * len(self.renderers)
        renderers = [renderer_cls(self) for renderer_cls in self.renderers]

        for media_type_lst in order_by_precedence(accept_list):
            for renderer in renderers:
                for media_type in media_type_lst:
                    if renderer.can_handle_response(media_type):
                        return renderer </s> remove             content = renderer(self).render()
 </s> add             content = renderer.render()
  
          return resp
  
  




      def _determine_renderer(self, request):
          """
          Return the appropriate renderer for the output, given the client's 'Accept' header,
          and the content types that this mixin knows how to serve.
  
keep keep keep keep replace replace replace 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