diff options
| author | Tom Christie | 2013-06-21 22:42:04 +0100 |
|---|---|---|
| committer | Tom Christie | 2013-06-21 22:42:04 +0100 |
| commit | 8cc63b09f6065e0197e060cc4d62b560196c8877 (patch) | |
| tree | 3b8827f179369dbe07cd29a0ba4897328ee7d922 /rest_framework | |
| parent | 4f7f93e20ef53fbc0b66766158bca75ebddce2ed (diff) | |
| download | django-rest-framework-8cc63b09f6065e0197e060cc4d62b560196c8877.tar.bz2 | |
Add support for StreamingHttpResponse. Closes #939
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): |
