diff options
Diffstat (limited to 'django/http')
| -rw-r--r-- | django/http/multipartparser.py | 2 | ||||
| -rw-r--r-- | django/http/request.py | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/django/http/multipartparser.py b/django/http/multipartparser.py index 40aefd6e9d..5bcc874982 100644 --- a/django/http/multipartparser.py +++ b/django/http/multipartparser.py @@ -110,7 +110,7 @@ class MultiPartParser(object): # HTTP spec says that Content-Length >= 0 is valid # handling content-length == 0 before continuing if self._content_length == 0: - return QueryDict(MultiValueDict(), encoding=self._encoding), MultiValueDict() + return QueryDict('', encoding=self._encoding), MultiValueDict() # See if the handler will want to take care of the parsing. # This allows overriding everything if somebody wants it. diff --git a/django/http/request.py b/django/http/request.py index 96c7606c86..d3f0888d47 100644 --- a/django/http/request.py +++ b/django/http/request.py @@ -276,6 +276,9 @@ class QueryDict(MultiValueDict): encoding = settings.DEFAULT_CHARSET self.encoding = encoding if six.PY3: + if isinstance(query_string, bytes): + # query_string contains URL-encoded data, a subset of ASCII. + query_string = query_string.decode() for key, value in parse_qsl(query_string or '', keep_blank_values=True, encoding=encoding): |
