Подтвердить что ты не робот

Как сделать перенаправление и сохранить строку запроса?

Я хочу сделать перенаправление и сохранить строку запроса. Что-то вроде self.redirect плюс параметры запроса, которые были отправлены. Возможно ли это?

4b9b3361

Ответ 1

newurl = '/my/new/route?' + urllib.urlencode(self.request.params)
self.redirect(newurl)

Ответ 2

Вы можете получить строку запроса для текущего запроса с помощью self.request.query_string; таким образом, вы можете перенаправить на новый URL-адрес с помощью self.redirect('/new/url?' + self.request.query_string).

Ответ 3

Это сработало для меня в Django 2.2. Строка запроса доступна в виде экземпляра QueryDict request.GET для HTTP GET и request.POST для HTTP POST. Преобразуйте их в обычные словари, а затем используйте urlencode.

from django.utils.http import urlencode

query_string = urlencode(request.GET.dict())  # or request.GET.urlencode()

new_url = '/my/new/route' + '?' + query_string

Смотрите https://docs.djangoproject.com/en/2.2/ref/request-response/.