Pregunta

No sé si es posible, pero me gustaría añadir algunos parámetros al final de la URL utilizando el middleware. ¿Se puede hacer sin redirigir después modyfing URL solicitada?

ie. usuario hace clic en: ... / some_link y middleware reescribe a: ... / some_link par1 = 1 & par2 = 2

Otra forma es modificar Reponse y reemplazar cada enlace HTML pero no es algo que me gustaría hacer.

Gracias

¿Fue útil?

Solución

Creo que esto realmente depende de su problema y qué es exactamente lo que estamos tratando de hacer.

No se puede cambiar la URL sin redirigir al usuario, ya que no puede modificar la dirección URL de una página sin una recarga. Básicamente una redirección es una respuesta que indica al usuario que seguir adelante, no hay manera de cambiar realmente la URL. Tenga en cuenta que incluso si lo haces en algo así como JavaScript que básicamente hace lo mismo como una redirección, por lo que no se puede hacer en el cliente o en el servidor.

Creo que podría ayudar si nos explicara por qué tiene que pasar esta información a través de la URL. ¿Por qué no almacenar datos en la sesión?

Creo que se puede agregar los datos al objeto solicitud, pero que no lo agrega a la dirección URL.

Otros consejos

class YourRedirectMiddleware:

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

¿Qué está tratando de lograr y por qué de esta manera?

Puede hacer lo que quiera en el middleware. Usted tiene acceso al objeto solicitud, se puede obtener la URL y redirigir a uno nuevo si lo desea.

Mi pregunta sería, ¿por qué quieres hacer esto? Si necesita mantener la información acerca de la solicitud, el lugar apropiado para hacer esto es en la sesión.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top