From 5541f0af448bfdfbc212deddca6571314446a071 Mon Sep 17 00:00:00 2001 From: Meurig Freeman Date: Mon, 31 Oct 2011 03:58:00 +0000 Subject: [PATCH] make use of original prefix when generating absolute urls --- djangorestframework/views.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/djangorestframework/views.py b/djangorestframework/views.py index 5f8e84cd2..f8434b403 100644 --- a/djangorestframework/views.py +++ b/djangorestframework/views.py @@ -5,7 +5,7 @@ be subclassing in your implementation. By setting or modifying class attributes on your view, you change it's predefined behaviour. """ -from django.core.urlresolvers import set_script_prefix +from django.core.urlresolvers import set_script_prefix, get_script_prefix from django.http import HttpResponse from django.views.decorators.csrf import csrf_exempt @@ -113,8 +113,9 @@ class View(ResourceMixin, RequestMixin, ResponseMixin, AuthMixin, DjangoView): self.headers = {} # Calls to 'reverse' will not be fully qualified unless we set the scheme/host/port here. + orig_prefix = get_script_prefix() prefix = '%s://%s' % (request.is_secure() and 'https' or 'http', request.get_host()) - set_script_prefix(prefix) + set_script_prefix(prefix + orig_prefix) try: self.initial(request, *args, **kwargs) @@ -156,6 +157,8 @@ class View(ResourceMixin, RequestMixin, ResponseMixin, AuthMixin, DjangoView): # merge with headers possibly set at some point in the view response.headers.update(self.headers) + set_script_prefix(orig_prefix) + return self.render(response)