Merge meurig's absolute_url fix.

This commit is contained in:
Tom Christie 2011-12-09 12:54:11 +00:00
commit 42cdd00591
2 changed files with 24 additions and 21 deletions

View File

@ -18,6 +18,7 @@ Tom Drummond <devioustree>
Danilo Bargen <gwrtheyrn>
Andrew McCloud <amccloud>
Thomas Steinacher <thomasst>
Meurig Freeman <meurig>
THANKS TO:

View File

@ -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
@ -114,8 +114,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)
@ -162,13 +163,14 @@ 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)
def options(self, request, *args, **kwargs):
def options(self, request, *args, **kwargs):
response_obj = {
'name' : get_name(self),
'description' : get_description(self),
'name': get_name(self),
'description': get_description(self),
'renders': self._rendered_media_types,
'parses': self._parsed_media_types,
}