Django: перенаправление пользователя со страницы входа, если он уже вошел в систему
Я хочу перенаправить пользователя со страницы входа в систему, если он уже вошел в систему; это означает, что пользователь, который вошел в систему, больше не будет иметь доступа к странице входа. Страница входа в систему выглядит примерно так: example.com/login
вот мой код в view.py:
def login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(request, username=username, password=password)
if user is not None:
logIn(request, user)
return redirect('/')
else:
messages.info(request, 'username or password is wrong')
context = {}
return render(request, 'account/login.html', context)
Ваши представления выглядят нормально, кроме пары опечаток. Просто добавьте дополнительный оператор управления в верхнюю часть вашего представления login
, что-то вроде:
def login(request):
# Logged in users will be redirected to 'home' page
if request.user.is_authenticated():
return redirect('home')
if request.method == 'POST':
....
Вы можете использовать следующий код в качестве справочника:
def login(request):
if request.user.is_authenticated():
return redirect("/")