          overridden by setting them in hidden form fields or not.
          """
  
          # We only need to use form overloading on form POST requests.
          if not self._USE_FORM_OVERLOADING or self._raw_method != 'POST' or not is_form_media_type(self._content_type):
              return
  
          # At this point we're committed to parsing the request as form data.
          self._data = data = self.POST.copy()
          self._files = self.FILES
 
</s> remove     def _load_post_and_files(self):
        """
        Overrides the parent's `_load_post_and_files` to isolate it 
        from the form overloading mechanism (see: `_perform_form_overloading`).
        """
        # When self.POST or self.FILES are called they need to know the original
        # HTTP method, not our overloaded HTTP method. So, we save our overloaded
        # HTTP method and restore it after the call to parent.
        method_mem = getattr(self, '_method', None)
        self._method = self._raw_method
        super(Request, self)._load_post_and_files()
        if method_mem is None:
            del self._method
        else:
            self._method = method_mem

 </s> add  </s> remove             self.request = request = self.get_request()
 </s> add             request = self.prepare_request(request) </s> remove     parsers = ()
    """
    The set of parsers that the request can handle.

    Should be a tuple/list of classes as described in the :mod:`parsers` module.
    """

    def __init__(self, request):
        # this allows to "copy" a request object into a new instance
        # of our custom request class.

        # First, we prepare the attributes to copy.
        attrs_dict = request.__dict__.copy()
        attrs_dict.pop('method', None)
        attrs_dict['_raw_method'] = request.method

        # Then, put them in the instance's own __dict__
        self.__dict__ = attrs_dict
 </s> add     def __init__(self, request=None, parsers=None):
        """
        `parsers` is a list/tuple of parser instances and represents the set of psrsers
        that the response can handle.
        """
        self.request = request
        if parsers is not None:
            self.parsers = parsers </s> remove             self._method = self._raw_method
 </s> add             self._method = self.request.method </s> remove         parsers = as_tuple(self.parsers)

        for parser_cls in parsers:
            parser = parser_cls(self)
 </s> add         for parser in as_tuple(self.parsers):
        if (not self._USE_FORM_OVERLOADING or self.request.method != 'POST'
                                or not is_form_media_type(self._content_type)):
          overridden by setting them in hidden form fields or not.
          """
  
          # We only need to use form overloading on form POST requests.
        if (not self._USE_FORM_OVERLOADING or self.request.method != 'POST'
                                or not is_form_media_type(self._content_type)):
              return
  
          # At this point we're committed to parsing the request as form data.
          self._data = data = self.POST.copy()
          self._files = self.FILES
keep keep keep keep replace keep keep keep keep keep
 cleaned Request/Response/mixins to have similar interface 
djangorestframework/request.py