      def determine_method(self, request):
          """Simply return GET, POST etc... as appropriate, allowing for POST overloading
          by setting a form field with the requested method name."""
          method = request.method.upper()
          if method == 'POST' and self.FORM_PARAM_METHOD and request.POST.has_key(self.FORM_PARAM_METHOD):
              method = request.POST[self.FORM_PARAM_METHOD].upper()
          return method 
</s> remove     FORM_PARAM_METHOD = '_method'
 </s> add     METHOD_PARAM = '_method' </s> remove     
    
    def determine_method(self, request):
        """Determine the HTTP method that this request should be treated as.
        Allows PUT and DELETE tunneling via the _method parameter if METHOD_PARAM is set."""
        method = request.method.upper()

        if method == 'POST' and self.METHOD_PARAM and request.POST.has_key(self.METHOD_PARAM):
            method = request.POST[self.METHOD_PARAM].upper()
        
        return method
 </s> add  </s> remove     def determine_parser(self, request):
        """Return the appropriate parser for the input, given the client's 'Content-Type' header,
        and the content types that this Resource knows how to parse."""
        content_type = request.META.get('CONTENT_TYPE', 'application/x-www-form-urlencoded')
        raw_content = request.raw_post_data
    
        split = content_type.split(';', 1)
        if len(split) > 1:
            content_type = split[0]
        content_type = content_type.strip()
        
        # If CONTENTTYPE_PARAM is turned on, and this is a standard POST form then allow the content type to be overridden
        if (content_type == 'application/x-www-form-urlencoded' and
            request.method == 'POST' and
            self.CONTENTTYPE_PARAM and
            self.CONTENT_PARAM and
            request.POST.get(self.CONTENTTYPE_PARAM, None) and
            request.POST.get(self.CONTENT_PARAM, None)):
            raw_content = request.POST[self.CONTENT_PARAM]
            content_type = request.POST[self.CONTENTTYPE_PARAM]

        # Create a list of list of (media_type, Parser) tuples
        media_type_to_parser = dict([(parser.media_type, parser) for parser in self.parsers])

        try:
            return (media_type_to_parser[content_type], raw_content)
        except KeyError:
            raise ResponseException(status.HTTP_415_UNSUPPORTED_MEDIA_TYPE,
                                    {'detail': 'Unsupported media type \'%s\'' % content_type})


 </s> add  </s> remove         if (request.method == 'POST' and self.FORM_PARAM_CONTENT and
            request.POST.get(self.FORM_PARAM_CONTENT, None) is not None):
 </s> add         if (request.method == 'POST' and self.CONTENT_PARAM and
            request.POST.get(self.CONTENT_PARAM, None) is not None): </s> remove     FORM_PARAM_CONTENTTYPE = '_contenttype'
 </s> add     CONTENTTYPE_PARAM = '_contenttype'
        if method == 'POST' and self.METHOD_PARAM and request.POST.has_key(self.METHOD_PARAM):
            method = request.POST[self.METHOD_PARAM].upper()
      def determine_method(self, request):
          """Simply return GET, POST etc... as appropriate, allowing for POST overloading
          by setting a form field with the requested method name."""
          method = request.method.upper()
        if method == 'POST' and self.METHOD_PARAM and request.POST.has_key(self.METHOD_PARAM):
            method = request.POST[self.METHOD_PARAM].upper()
        if method == 'POST' and self.METHOD_PARAM and request.POST.has_key(self.METHOD_PARAM):
            method = request.POST[self.METHOD_PARAM].upper()
          return method 
keep keep keep keep replace replace keep
 Refactor a bunch of stuff into mixins, more tests 
djangorestframework/methods.py