Sto cercando di creare un sito Web semplice con funzionalità di accesso molto simili a quello qui su SO. L'utente dovrebbe essere in grado di navigare nel sito come utente anonimo e ci sarà un link di accesso su ogni pagina. Quando si fa clic sul collegamento di accesso, l'utente verrà indirizzato al modulo di accesso. Dopo un accesso riuscito, l'utente dovrebbe essere riportato alla pagina da cui ha fatto clic sul collegamento di accesso. Suppongo di dover in qualche modo passare l'URL della pagina corrente alla vista che gestisce il modulo di accesso, ma non riesco davvero a farlo funzionare.
EDIT: l'ho capito. Ho collegato al modulo di login passando la pagina corrente come parametro GET e quindi ho usato 'next' per reindirizzare a quella pagina. Grazie!
EDIT 2: La mia spiegazione non sembra essere chiara, quindi come richiesto qui è il mio codice: Diciamo che siamo su una pagina foo.html e non siamo connessi. Ora vorremmo avere un link su foo.html che collega a login.html. Lì possiamo effettuare il login e quindi reindirizzati a foo.html. Il link su foo.html è simile al seguente:
<a href='/login/?next={{ request.path }}'>Login</a>
Ora ho scritto una vista di accesso personalizzata che assomiglia in qualche modo a questa:
def login_view(request):
redirect_to = request.REQUEST.get('next', '')
if request.method=='POST':
#create login form...
if valid login credentials have been entered:
return HttpResponseRedirect(redirect_to)
#...
return render_to_response('login.html', locals())
E la riga importante in login.html:
<form method="post" action="./?next={{ redirect_to }}">
Quindi sì, è praticamente tutto, spero che lo chiarisca.