diff options
Diffstat (limited to 'rest_framework/request.py')
| -rw-r--r-- | rest_framework/request.py | 9 | 
1 files changed, 5 insertions, 4 deletions
diff --git a/rest_framework/request.py b/rest_framework/request.py index 1c28cd17..597892ef 100644 --- a/rest_framework/request.py +++ b/rest_framework/request.py @@ -9,10 +9,11 @@ The wrapped request then offers a richer API, in particular :      - full support of PUT method, including support for file uploads      - form overloading of HTTP method, content type and content  """ -from StringIO import StringIO  from django.http.multipartparser import parse_header +from rest_framework import HTTP_HEADER_ENCODING  from rest_framework import exceptions +from rest_framework.compat import BytesIO  from rest_framework.settings import api_settings @@ -20,7 +21,7 @@ def is_form_media_type(media_type):      """      Return True if the media type is a valid form media type.      """ -    base_media_type, params = parse_header(media_type) +    base_media_type, params = parse_header(media_type.encode(HTTP_HEADER_ENCODING))      return (base_media_type == 'application/x-www-form-urlencoded' or              base_media_type == 'multipart/form-data') @@ -242,7 +243,7 @@ class Request(object):          elif hasattr(self._request, 'read'):              self._stream = self._request          else: -            self._stream = StringIO(self.raw_post_data) +            self._stream = BytesIO(self.raw_post_data)      def _perform_form_overloading(self):          """ @@ -277,7 +278,7 @@ class Request(object):              self._CONTENT_PARAM in self._data and              self._CONTENTTYPE_PARAM in self._data):              self._content_type = self._data[self._CONTENTTYPE_PARAM] -            self._stream = StringIO(self._data[self._CONTENT_PARAM]) +            self._stream = BytesIO(self._data[self._CONTENT_PARAM].encode(HTTP_HEADER_ENCODING))              self._data, self._files = (Empty, Empty)      def _parse(self):  | 
