2011-11-30 13 views
11

Darò le informazioni passo passo.Come ottenere l'url precedente in django

Diciamo che siamo nella pagina about, l'url è sample.com/about. C'è un messaggio di posta elettronica un pulsante di amicizia, quando si fa clic, l'URL è sample.com/emailafriend. Quindi, quando ho fatto clic sul pulsante di invio, l'URL di riferimento sarà inviato sample.com/emailafriend. Domanda, come ottenere l'URL della pagina? A proposito, sto usando request.META['HTTP_REFERER'].

risposta

10

Si potrebbe lavorare con il request path attribute e aggiungere che, per attributo action del form, in questo modo:

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

Poi, nel vostro tell-a-friend vista, HttpResponseRedirect al parametro return_url query.

+0

Questo è sicuramente un buon approccio che si manterrà con i reindirizzamenti. –

1

Sembra che tu stia utilizzando lo standard APPEND_SLASH che eseguirà un reindirizzamento se non hai una barra. Prova a cambiare il link del pulsante a sample.com/emailafriend/, nota la barra finale.

+0

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

+0

Ho già utilizzato quella richiesta. Ma quando hai fatto clic sul pulsante di invio, la pagina di riferimento è già sample.com/emailafriend, non più. – david

+0

Ho appena aggiornato la mia risposta. –

0

Forse basta passare sample.com/about come GET o POST param? O anche attraverso la sessione.

1

E se si ottiene un request variabile vuota in template, controlla this post

Problemi correlati