Изменить адрес в промежуточном программном обеспечении Django

StackOverflow https://stackoverflow.com/questions/1458829

Вопрос

Я не знаю, возможно ли это, но я хотел бы добавить несколько параметров в конце URL-адреса, используя промежуточное программное обеспечение.Можно ли это сделать без перенаправления после изменения запрошенного URL?

т. е.клики пользователя:.../some_link и промежуточное программное обеспечение переписывает его в:.../some_link?par1=1&par2=2

Другой способ - изменить reponse и заменить каждую HTML-ссылку, но это не то, что я хотел бы делать.

Спасибо

Это было полезно?

Решение

Я думаю, это действительно зависит от вашей проблемы и от того, что именно вы пытаетесь сделать.

Вы не можете изменить URL-адрес без перенаправления пользователя, так же как вы не можете изменить URL-адрес на странице без перезагрузки.По сути, перенаправление - это ответ, в котором пользователю предлагается двигаться дальше, на самом деле изменить URL невозможно.Обратите внимание, что даже если вы делаете это в чем-то вроде JavaScript, вы в основном делаете то же самое, что и перенаправление, поэтому это не может быть сделано на стороне клиента или сервера.

Я думаю, это могло бы помочь, если бы вы объяснили нам, почему вам нужно передавать эту информацию через URL.Почему бы не сохранить данные в сеансе?

Я предполагаю, что вы могли бы добавить данные к объекту запроса, но это не добавит их к URL.

Другие советы

class YourRedirectMiddleware:

    def process_request(self, request):
        redirect_url = request.path+'?par1=1&par2=2'
        return HttpResponsePermanentRedirect(redirect_url)

чего вы пытаетесь достичь и почему именно таким образом?

Вы можете делать все, что вам нравится в промежуточном программном обеспечении.У вас есть доступ к объекту запроса, вы можете получить URL-адрес и перенаправить на новый, если хотите.

Мой вопрос был бы таков: почему вы хотите это сделать?Если вам нужно сохранить информацию о запросе, подходящее место для этого - в сеансе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top