diff --git a/django/http/request.py b/django/http/request.py index 73858c5abd..83131d52c3 100644 --- a/django/http/request.py +++ b/django/http/request.py @@ -226,8 +226,8 @@ class HttpRequest(object): next access (so that it is decoded correctly). """ self._encoding = val - if hasattr(self, '_get'): - del self._get + if hasattr(self, 'GET'): + del self.GET if hasattr(self, '_post'): del self._post diff --git a/tests/requests/tests.py b/tests/requests/tests.py index 4989071cbb..1a243a02b0 100644 --- a/tests/requests/tests.py +++ b/tests/requests/tests.py @@ -562,6 +562,16 @@ class RequestsTests(SimpleTestCase): request.encoding = 'iso-8859-16' self.assertEqual(request.POST, {'name': ['Hello GĂŒnter']}) + def test_set_encoding_clears_GET(self): + request = WSGIRequest({ + 'REQUEST_METHOD': 'GET', + 'wsgi.input': '', + 'QUERY_STRING': b'name=Hello%20G%C3%BCnter' if six.PY2 else 'name=Hello%20G%C3%BCnter' + }) + self.assertEqual(request.GET, {'name': ['Hello Günter']}) + request.encoding = 'iso-8859-16' + self.assertEqual(request.GET, {'name': ['Hello G\u0102\u0152nter']}) + def test_FILES_connection_error(self): """ If wsgi.input.read() raises an exception while trying to read() the