Как перенаправить пользователя обратно на страницу, к которой он пытался получить доступ после входа в систему?(Джанго) - PullRequest
1 голос
/ 07 марта 2012

Так что в настоящее время я использую @login_required, чтобы блокировать определенные страницы от пользователей и перенаправлять их, сообщая им, что им нужно войти в систему. Но я не могу понять, как мне «позволить им» перейти на страницу, на которой они были пытаюсь зайти, как только они войдут в систему. В настоящее время я просто использую типичный render_to_response («с определенным представлением»), но что, если я хочу, чтобы этот ответ был где-то, где они пытались получить доступ. Как мне это написать?

Ответы [ 3 ]

0 голосов
/ 07 марта 2012

@login_required, как правило, возвращает вам имя redirect_field_name (по умолчанию «next»), например: / account / login /? Next = / polls / 3 /.Таким образом, в вашей учетной записи после аутентификации и входа в систему вы можете сделать что-то вроде

response = HttpResponseRedirect(next)
# Do whatever else you need to do here with the response object
return response

См. Документы в https://docs.djangoproject.com/en/1.3/topics/auth/#the-login-required-decorator

0 голосов
/ 07 марта 2012

из регистрационных документов для входа в систему там написано:

По умолчанию путь, на который должен быть перенаправлен пользователь успешная аутентификация сохраняется в параметре строки запроса, называемом "Следующий".

и обычно после входа в систему происходит переход на следующий URL-адрес

Вот что делает django.contrib.auth.views.login:

Если вызывается через GET, отображается форма входа в систему, которая отправляет в тот же URL. Подробнее об этом чуть позже.
Если вызывается через POST , он пытается войти вход пользователя. Если вход выполнен успешно, представление перенаправляется на URL указано в следующем . Если следующий не предоставлен, он перенаправляет на settings.LOGIN_REDIRECT_URL (по умолчанию это / account / profile /). Если вход не выполнен, он отображает форму входа.

0 голосов
/ 07 марта 2012

Вы можете передать параметр url обратно на свою страницу входа в систему и использовать его, чтобы направлять пользователя после успешного завершения входа в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...