aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/request.py
diff options
context:
space:
mode:
authorTom Christie2013-02-04 20:37:09 +0000
committerTom Christie2013-02-04 20:37:09 +0000
commit8e846bdf52f03d0733ac73e418152800e582b898 (patch)
treecd7034d5573f1e264798a618c88addc4d2f45ce0 /rest_framework/request.py
parentd9b73e15c87c3a7f11d6bea5ffd6118f86e40051 (diff)
parent97f2b994951605ffdef08159be450d1e77762bf9 (diff)
downloaddjango-rest-framework-8e846bdf52f03d0733ac73e418152800e582b898.tar.bz2
Merge branch 'py3k' into 2.2
Conflicts: rest_framework/relations.py rest_framework/serializers.py rest_framework/tests/relations_hyperlink.py rest_framework/tests/relations_slug.py
Diffstat (limited to 'rest_framework/request.py')
-rw-r--r--rest_framework/request.py9
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):