2012-10-06 30 views
46

Eventuali duplicati:
Django: Redirect to previous page after loginReindirizza/torna alla stessa pagina (precedente) in Django?

Quali sono le opzioni quando si desidera tornare l'utente alla stessa pagina in Django e quali sono i pro/contro di ciascuno?

Metodi so:

  • HTTP_REFERER
  • parametro GET contenente l'URL precedente
  • dati di sessione per memorizzare l'URL precedente

ci sono altre?

+8

Il link dice "dopo il login". Ho chiesto "dopo il login"? Questa domanda può essere una vera panoramica di questo argomento. Non merita -1, merita +1. Jeeez –

+2

al contrario la logica non è diversa da un get o post, è solo una domanda di reindirizzamento non ci sono pro e contro coinvolti finché non si definisce un ragionamento, la tua domanda è ampia e senza una ricerca o una sperimentazione adeguata. –

+3

È molto diverso. I reindirizzamenti di login e commenti di Django sono incorporati. La mia domanda è per gli altri casi;) –

risposta

83

Uno dei modi sta usando HTTP_REFERER intestazione come come di seguito:

from django.http import HttpResponseRedirect 

def someview(request): 
    ... 
    return HttpResponseRedirect(request.META.get('HTTP_REFERER')) 

Non sono sicuro di contro di questo!

+7

Penso che il grande contro sarebbe il fatto che molti utenti/browser hanno disattivato http_referer. –

+3

Sai quanto è difficile disattivare l'intestazione? La maggior parte degli utenti non sa cosa sia, per non parlare di come spegnerlo. In Firefox e Chrome è necessario _ modificare manualmente le preferenze_ (anche in questo caso, molte persone non sanno come farlo); in IE non è possibile disabilitarlo affatto (è disabilitato automaticamente per i siti protetti). –

+35

Penso che sarebbe ancora meglio reindirizzare alla pagina principale del sito se request.META non è impostato: return HttpResponseRedirect (request.META.get ('HTTP_REFERER', '/')) – nickzam

4

Mentre la domanda e la risposta sono vecchie, penso che manchino alcune opzioni. Non ho trovato alcun riscontro con i metodi, sarei felice di sapere se ce ne sono?

Problemi correlati