aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/response.py
diff options
context:
space:
mode:
authorTom Christie2012-04-11 17:38:47 +0100
committerTom Christie2012-04-11 17:38:47 +0100
commit4739e1c012526c3ed9835d908d6d7eff5e3c48f6 (patch)
tree800f2133bf50449e2698f562d5d1d2dd199168e3 /djangorestframework/response.py
parent44df8345f3ffcba141ded3a1bd993971d7199164 (diff)
parent1ff741d1ccc38f099a7159bdef787e5c04dc4f79 (diff)
downloaddjango-rest-framework-4739e1c012526c3ed9835d908d6d7eff5e3c48f6.tar.bz2
Merge work from sebpiq
Diffstat (limited to 'djangorestframework/response.py')
-rw-r--r--djangorestframework/response.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/djangorestframework/response.py b/djangorestframework/response.py
index bedeb6c5..ea9a938c 100644
--- a/djangorestframework/response.py
+++ b/djangorestframework/response.py
@@ -168,6 +168,18 @@ class ImmediateResponse(Response, Exception):
An exception representing an Response that should be returned immediately.
Any content should be serialized as-is, without being filtered.
"""
+ #TODO: this is just a temporary fix, the whole rendering/support for ImmediateResponse, should be remade : see issue #163
+
+ def render(self):
+ try:
+ return super(Response, self).render()
+ except ImmediateResponse:
+ renderer, media_type = self._determine_renderer()
+ self.renderers.remove(renderer)
+ if len(self.renderers) == 0:
+ raise RuntimeError('Caught an ImmediateResponse while '\
+ 'trying to render an ImmediateResponse')
+ return self.render()
def __init__(self, *args, **kwargs):
self.response = Response(*args, **kwargs)