class FixFirefoxMissingAJAXRedirectHeadersMiddleware(object): key = 'FixFirefoxMissingAJAXRedirectHeadersMiddleware' def process_request(self, request): if not request.is_ajax() and request.path == request.session.get(self.key, None): setattr(request, 'is_ajax', lambda: True) def process_response(self, request, response): if request.is_ajax() and 300 <= response.status_code < 400: request.session[self.key] = response['Location'] else: if self.key in request.session: del request.session[self.key] return response