Thông thường, sau khi đăng nhập hoặc đăng ký thành công , người dùng sẽ được chuyển hướng đến một trang được chỉ định trước trong tệp settings.py.
Để người dùng đã đăng nhập được chuyển hướng đến một trang tùy chỉnh nếu họ lại truy cập vào url login/logout, làm như sau:
# app/views.py
from django.contrib.auth.views import LoginView
class LoginView(LoginView):
template_name = 'registration/login.html'
success_url = reverse_lazy('profile')
"""
Nếu user đã đăng nhập và truy cập vào trang /login/ thì sẽ được chuyển hướng đến users_logged_url
redirect_authenticated_user: True/False
"""
redirect_authenticated_user = True
users_logged_url = "/" # goto home
def get_default_redirect_url(self):
"""Return the default redirect URL."""
return resolve_url(self.users_logged_url or settings.LOGIN_REDIRECT_URL)
# app/urls.py
urlpatterns = [
path('user/login/', views.LoginView.as_view(), name='login'),
# ...
]