fixed query string loss

This commit is contained in:
Ludwig Kraatz 2012-11-15 21:07:43 +01:00
parent 723241511c
commit 238fb79e6d

View File

@ -380,7 +380,6 @@ class RedirectAPIView(APIView):
"""
permanent = True
view_name = None
#http_method_names = ['get', 'post', 'head', 'options', 'delete', 'put']
def get_redirect_url(self, request, *args, **kwargs):
"""
@ -389,10 +388,15 @@ class RedirectAPIView(APIView):
are provided as kwargs to this method.
"""
try:
return reverse(self.view_name, args=args, kwargs=kwargs, request=request)
url = reverse(self.view_name, args=args, kwargs=kwargs, request=request)
except:
return None
query_string = self.request.META.get('QUERY_STRING', '')
if query_string:
url = '%(url)s?%(query_string)s' % {'url': url, 'query_string': query_string}
return url
def get(self, request, *args, **kwargs):
url = self.get_redirect_url(request, *args, **kwargs)
if url:
@ -402,11 +406,6 @@ class RedirectAPIView(APIView):
else:
return Response(status=status.HTTP_302_FOUND, headers=headers)
else:
logger.warning('Gone: %s', self.request.path,
extra={
'status_code': status.HTTP_410_GONE,
'request': self.request
})
return Response(status=status.HTTP_410_GONE)
def head(self, request, *args, **kwargs):