Saya mencoba membangun situs web sederhana dengan fungsi masuk yang sangat mirip dengan yang ada di sini di SO. Pengguna harus dapat menjelajahi situs sebagai pengguna anonim dan akan ada tautan masuk pada setiap halaman. Saat mengklik tautan login, pengguna akan dibawa ke formulir login. Setelah login berhasil, pengguna harus dibawa kembali ke halaman dari mana ia mengklik tautan login. Saya menduga bahwa saya harus meneruskan url halaman saat ini ke tampilan yang menangani formulir login tetapi saya tidak dapat membuatnya berfungsi.
EDIT: Saya sudah menemukan jawabannya. Saya menautkan ke formulir masuk dengan melewati halaman saat ini sebagai parameter GET dan kemudian menggunakan 'berikutnya' untuk mengarahkan ulang ke halaman itu. Terima kasih!
EDIT 2: Penjelasan saya sepertinya tidak jelas sehingga seperti yang diminta di sini adalah kode saya: Mari kita katakan kita berada di halaman foo.html dan kita belum login. Sekarang kita ingin memiliki tautan pada foo.html tautan itu untuk login.html. Di sana kita bisa masuk dan kemudian diarahkan kembali ke foo.html. Tautan di foo.html terlihat seperti ini:
<a href='/login/?next={{ request.path }}'>Login</a>
Sekarang saya menulis tampilan masuk khusus yang terlihat seperti ini:
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())
Dan baris penting dalam login.html:
<form method="post" action="./?next={{ redirect_to }}">
Jadi ya itu cukup banyak, harapan yang membuatnya jelas.