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 permanent = True
view_name = None view_name = None
#http_method_names = ['get', 'post', 'head', 'options', 'delete', 'put']
def get_redirect_url(self, request, *args, **kwargs): def get_redirect_url(self, request, *args, **kwargs):
""" """
@ -389,9 +388,14 @@ class RedirectAPIView(APIView):
are provided as kwargs to this method. are provided as kwargs to this method.
""" """
try: try:
return reverse(self.view_name, args=args, kwargs=kwargs, request=request) url = reverse(self.view_name, args=args, kwargs=kwargs, request=request)
except: except:
return None 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): def get(self, request, *args, **kwargs):
url = self.get_redirect_url(request, *args, **kwargs) url = self.get_redirect_url(request, *args, **kwargs)
@ -402,11 +406,6 @@ class RedirectAPIView(APIView):
else: else:
return Response(status=status.HTTP_302_FOUND, headers=headers) return Response(status=status.HTTP_302_FOUND, headers=headers)
else: 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) return Response(status=status.HTTP_410_GONE)
def head(self, request, *args, **kwargs): def head(self, request, *args, **kwargs):