В моем приложении django пользователь может получить доступ к страницам входа / регистрации через URL даже после входа в систему.Как запретить им доступ к этим страницам?
urls.py
from django.urls import path
from django.contrib.auth import views as auth_views
from . import views
app_name = 'account'
urlpatterns = [
path('signup/', views.register, name='register'),
path('', auth_views.LoginView.as_view(), name='login'),
]
Хотя я могу написать оператор if-else для проверки подлинностипользователи в views.py , но я не использовал ни одной функции для входа в views.py.Я использую sjyeo по умолчанию для входа в систему django и страницу authentication.py для пользовательского входа (аутентификация по адресу электронной почты).
authentication.py
from django.contrib.auth.models import User
class EmailAuthBackend(object):
"""
Authenticate using an e-mail address.
"""
def authenticate(self, request, username=None, password=None):
try:
user = User.objects.get(email=username)
if user.check_password(password):
return user
return None
except User.DoesNotExist:
return None
def get_user(self, user_id):
try:
return User.objects.get(pk=user_id)
except User.DoesNotExist:
return None
Пожалуйста, предложите мне эффективный способ перенаправления уже аутентифицированных пользователей на домашнюю страницу всякий раз, когда они пытаются получить доступ к страницам входа или регистрации, набрав его URL в браузере.