Estou tentando criar um site simples com a funcionalidade de login muito semelhante ao aqui no SO. O usuário deve poder navegar no site como um usuário anônimo e haverá um link de login em todas as páginas. Ao clicar no link de login, o usuário será levado para o formulário de login. Após um login bem-sucedido, o usuário deve retornar à página em que clicou no link de login. Suponho que, de alguma forma, preciso passar o URL da página atual para a visualização que lida com o formulário de login, mas não consigo fazer com que funcione.
EDIT: Eu descobri isso. Eu vinculei ao formulário de login passando a página atual como um parâmetro GET e depois usei 'next' para redirecionar para essa página. Obrigado!
EDIT 2: Minha explicação não parecia clara, portanto, conforme solicitado aqui, é o meu código: Digamos que estamos em uma página foo.html e não estamos logados. Agora, gostaríamos de ter um link em foo.html que vincule para login.html. Lá, podemos fazer login e, em seguida, somos redirecionados de volta para foo.html. O link em foo.html fica assim:
<a href='/login/?next={{ request.path }}'>Login</a>
Agora eu escrevi uma visualização de login personalizada que se parece com isso:
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 a linha importante em login.html:
<form method="post" action="./?next={{ redirect_to }}">
Então é isso mesmo, espero que fique claro.