2011-11-30 59 views
11

Le daré la información paso a paso.Cómo obtener la URL anterior en django

Digamos que estamos en la página de acerca, la url es sample.com/about. Hay un botón de enviar un correo electrónico a un amigo, cuando se hace clic, la URL es sample.com/emailafriend. Luego, cuando hice clic en el botón de enviar, la url de referencia será enviada a sample.com/emailafriend. Pregunta, ¿cómo obtener la URL de la página aproximada? Por cierto, estoy usando request.META['HTTP_REFERER'].

Respuesta

10

Se podría trabajar con el request path attribute y añadir que al atributo de acción de su forma, de este modo:

<form method="post" action="/tell-a-friend?return_url={{ request.path }}"> 
... 
</form> 

Luego, en su decirle a un amigo vista, HttpResponseRedirect al parámetro return_url consulta.

+0

Definitivamente es un buen enfoque que se mantendrá con los redireccionamientos. –

1

Parece que está utilizando APPEND_SLASH que hará un redireccionamiento si no tiene una barra inclinada. Intente cambiar el enlace del botón a sample.com/emailafriend/, tenga en cuenta la barra diagonal.

+0

acuerdo con https://docs.djangoproject.com/en/dev/ref/request-response/#django.http.HttpRequest. META –

+0

Ya estoy usando esa solicitud. Pero cuando hizo clic en el botón de enviar, la página de referencia ya es sample.com/emailafriend, ya no se trata de más. – david

+0

Acabo de actualizar mi respuesta. –

0

Tal vez simplemente pase sample.com/about como GET o POST param? O incluso a través de la sesión.

1

Y si obtiene un request una variable vacía en la plantilla, echa un vistazo a this post

Cuestiones relacionadas