Существует два сценария входа пользователя:
- Вход с домашней страницы
- Сессия истекла, и пользователь вышел из системы.Пользователь был вынужден повторно войти в систему, чтобы остаться на текущей странице (используется
@login_required
декоратор)
С использованием декоратора @login_required
, если я не укажу LOGIN_REDIRECT_URL
вsettings.py
, если пользователь вышел из системы из-за истечения срока сеанса и снова вошел в систему, он будет перенаправлен обратно на свою текущую страницу, например:
http://127.0.0.1:8000/?next=/my-current-url-page/
Это оченьхорошая функция, и я хотел бы придерживаться ее, но если я нахожусь в Scenario 1
, он будет перенаправлен на:
http://127.0.0.1:8000/accounts/profile/
Я хочу указывать URL перенаправления только тогда, когдапользователь входит в систему с домашней страницы.Как установить исключение, при котором пользователь входит в систему с домашней страницы?
urls.py
# this renders the home page
re_path('^$', auth_views.login, {'template_name': 'login.html'}, name='login'),
# this renders the other pages
path('well_list/', decorator_include(login_required, [
re_path(....),
re_path(....),
]))
FYI, decorator_include
- это кодфрагмент, который позволяет применять декоратор для шаблонов URL с include()
.