'Parse the request content, returning a two-tuple of (data, files)
May raise an `UnsupportedMediaType`, or `ParseError` exception.'

def _parse(self):

    media_type = self.content_type
    try:
        stream = self.stream
    except RawPostDataException:
        if (not hasattr(self._request, u'_post')):
            raise
        if self._supports_form_parsing():
            return (self._request.POST, self._request.FILES)
        stream = None
    if ((stream is None) or (media_type is None)):
        if (media_type and (not is_form_media_type(media_type))):
            empty_data = QueryDict(u'', encoding=self._request._encoding)
        else:
            empty_data = {}
        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:
        self._data = QueryDict(u'', encoding=self._request._encoding)
        self._files = MultiValueDict()
        self._full_data = self._data
        raise
    try:
        return (parsed.data, parsed.files)
    except AttributeError:
        empty_files = MultiValueDict()
        return (parsed, empty_files)
