Я пытаюсь создать простой веб-сайт с функциями входа в систему, очень похожим на тот, который находится здесь, на SO. Пользователь должен иметь возможность просматривать сайт как анонимный пользователь, и на каждой странице будет ссылка для входа. При нажатии на ссылку входа пользователь будет отправлен в форму для входа. После успешного входа в систему пользователь должен быть возвращен на страницу, откуда он первым нажал ссылку на вход. Я предполагаю, что мне нужно каким-то образом передать URL-адрес текущей страницы в представление, которое обрабатывает форму входа, но я не могу заставить ее работать.Django: Перенаправление на предыдущую страницу после входа в систему
EDIT: Я понял. Я связался с формой входа, передав текущую страницу как параметр GET, а затем использовал «next» для перенаправления на эту страницу. Благодаря!
EDIT 2: Мое объяснение не кажется, ясно, так, как предложено здесь мой код: Допустим, мы находимся на странице foo.html и мы не вошли в систему Теперь мы хотели бы иметь связь. на foo.html, который ссылается на login.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 }}">
Так что да, это очень много, надеюсь, что это ясно.
Я думаю, Элементы входа в Django обрабатывают это для вас, разве это не работает для вас? –