diff options
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/compat.py | 6 | ||||
| -rw-r--r-- | rest_framework/views.py | 11 | 
2 files changed, 12 insertions, 5 deletions
| diff --git a/rest_framework/compat.py b/rest_framework/compat.py index 76dc0052..a19bd778 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -33,6 +33,12 @@ except ImportError:      from django.utils.encoding import force_unicode as force_text +# HttpResponseBase only exists from 1.5 onwards +try: +    from django.http.response import HttpResponseBase +except ImportError: +    from django.http import HttpResponse as HttpResponseBase +  # django-filter is optional  try:      import django_filters diff --git a/rest_framework/views.py b/rest_framework/views.py index c28d2835..37bba7f0 100644 --- a/rest_framework/views.py +++ b/rest_framework/views.py @@ -4,11 +4,11 @@ Provides an APIView class that is the base of all views in REST framework.  from __future__ import unicode_literals  from django.core.exceptions import PermissionDenied -from django.http import Http404, HttpResponse +from django.http import Http404  from django.utils.datastructures import SortedDict  from django.views.decorators.csrf import csrf_exempt  from rest_framework import status, exceptions -from rest_framework.compat import View +from rest_framework.compat import View, HttpResponseBase  from rest_framework.request import Request  from rest_framework.response import Response  from rest_framework.settings import api_settings @@ -244,9 +244,10 @@ class APIView(View):          Returns the final response object.          """          # Make the error obvious if a proper response is not returned -        assert isinstance(response, HttpResponse), ( -            'Expected a `Response` to be returned from the view, ' -            'but received a `%s`' % type(response) +        assert isinstance(response, HttpResponseBase), ( +            'Expected a `Response`, `HttpResponse` or `HttpStreamingResponse` ' +            'to be returned from the view, but received a `%s`' +            % type(response)          )          if isinstance(response, Response): | 
