Я намагаюся створити простий веб-сайт з функціоналом входу, дуже схожим на той, що тут на SO. Користувач повинен мати можливість переглядати сайт як анонімний користувач, і на кожній сторінці буде посилання для входу. При натисканні на посилання для входу користувач перейде до форми реєстрації. Після успішного входу користувача потрібно повернути на сторінку, звідки він в першу чергу натиснув на посилання для входу. Я здогадуюсь, що я повинен якось передати URL-адресу поточної сторінки до подання, що обробляє форму входу, але я не можу реально змусити її працювати.
EDIT: Я зрозумів це. Я зв'язав форму реєстрації, передавши поточну сторінку як параметр GET, а потім застосував "наступний" для переадресації на цю сторінку. Дякую!
EDIT 2: Моє пояснення не було зрозумілим, тому тут вимагається мій код: Дозвольмо сказати, що ми перебуваємо на сторінці foo.html і ми не ввійшли в систему. Тепер ми хотіли б мати посилання на foo.html, яке посилається до входу.html. Там ми можемо увійти, і потім будемо перенаправлені назад до foo.html. Посилання на foo.html виглядає приблизно так:
<a href='/login/?next={{ request.path }}'>Login</a>
Тепер я написав спеціальний вид входу, який виглядає приблизно так:
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())
І важливий рядок в login.html:
<form method="post" action="./?next={{ redirect_to }}">
Так так, це майже все, сподівання, що це дає зрозуміти.