diff --git a/rest_framework/request.py b/rest_framework/request.py index 93634e667..194be5f6d 100644 --- a/rest_framework/request.py +++ b/rest_framework/request.py @@ -413,7 +413,8 @@ class Request: to proxy it to the underlying HttpRequest object. """ try: - return getattr(self._request, attr) + _request = self.__getattribute__("_request") + return getattr(_request, attr) except AttributeError: return self.__getattribute__(attr) diff --git a/tests/test_request.py b/tests/test_request.py index 8f55d00ed..8c18aea9e 100644 --- a/tests/test_request.py +++ b/tests/test_request.py @@ -1,6 +1,7 @@ """ Tests for content parsing, and form-overloaded content parsing. """ +import copy import os.path import tempfile @@ -344,3 +345,10 @@ class TestHttpRequest(TestCase): # ensure that request stream was consumed by form parser assert request.content_type.startswith('multipart/form-data') assert response.data == {'a': ['b']} + + +class TestDeepcopy(TestCase): + + def test_deepcopy_works(self): + request = Request(factory.get('/', secure=False)) + copy.deepcopy(request)