      def parse(self, stream, **opts):
          """
          Returns a 2-tuple of `(data, files)`.
  
          `data` will be a :class:`QueryDict` containing all the form parameters.
          `files` will be a :class:`QueryDict` containing all the form files.
          """
          meta = opts['meta']
          upload_handlers = opts['upload_handlers']
          try:
              parser = DjangoMultiPartParser(meta, stream, upload_handlers)
 
</s> remove         Returns a 2-tuple of `(data, files)`.
 </s> add         Returns a DataAndFiles object. </s> remove         return (data, None)
 </s> add         return data </s> remove         """
        Returns a 2-tuple of `(data, files)`.

        `data` will simply be a string representing the body of the request.
        `files` will always be `None`.
        """
 </s> add  </s> remove             return parser.parse()
 </s> add             data, files = parser.parse()
            return DataAndFiles(data, files) </s> remove         return (stream.read(), None)
 </s> add         return stream.read()
        `.data` will be a `QueryDict` containing all the form parameters.
        `.files` will be a `QueryDict` containing all the form files.
      def parse(self, stream, **opts):
          """
          Returns a 2-tuple of `(data, files)`.
  
        `.data` will be a `QueryDict` containing all the form parameters.
        `.files` will be a `QueryDict` containing all the form files.
        `.data` will be a `QueryDict` containing all the form parameters.
        `.files` will be a `QueryDict` containing all the form files.
          """
          meta = opts['meta']
          upload_handlers = opts['upload_handlers']
          try:
              parser = DjangoMultiPartParser(meta, stream, upload_handlers)
keep keep keep keep replace replace keep keep keep keep keep
 Parsers may return raw data, or a DataAndFiles object 
djangorestframework/parsers.py