docs: def _parse(self):
          """
          Parse the request content, returning a two-tuple of (data, files)
  
          May raise an `UnsupportedMediaType`, or `ParseError` exception.
          """
          stream = self.stream
          media_type = self.content_type
  
          if stream is None or media_type is None:
              empty_data = QueryDict('', encoding=self._request._encoding)
              empty_files = MultiValueDict()
              return (empty_data, empty_files)
  
          parser = self.negotiator.select_parser(self, self.parsers)
  
          if not parser:
              raise exceptions.UnsupportedMediaType(media_type)
  
          try:
              parsed = parser.parse(stream, media_type, self.parser_context)
          except:
              # If we get an exception during parsing, fill in empty data and
              # re-raise.  Ensures we don't simply repeat the error when
              # attempting to render the browsable renderer response, or when
              # logging the request or similar.
              self._data = QueryDict('', encoding=self._request._encoding)
              self._files = MultiValueDict()
              self._full_data = self._data
              raise
  
          # Parser classes may return the raw data, or a
          # DataAndFiles object.  Unpack the result as required.
          try:
              return (parsed.data, parsed.files)
          except AttributeError:
              empty_files = MultiValueDict()
              return (parsed, empty_files)