diff --git a/application/accounts/urls.py b/application/accounts/urls.py index 3d2b9e8..a3789bd 100644 --- a/application/accounts/urls.py +++ b/application/accounts/urls.py @@ -2,7 +2,10 @@ from django.urls import path, include from django.contrib.auth import views as auth_views +from application.accounts.views import logout_view + urlpatterns = [ path('login/', auth_views.LoginView.as_view(template_name='accounts/login.html'), name='user_login'), + path('logout/', logout_view, name='user_logout'), path('password_reset/', include('django.contrib.auth.urls')), ] \ No newline at end of file diff --git a/application/accounts/views.py b/application/accounts/views.py index 68673a7..179503c 100644 --- a/application/accounts/views.py +++ b/application/accounts/views.py @@ -1,5 +1,7 @@ from django.contrib import messages +from django.contrib.auth import logout from django.contrib.auth.views import LoginView +from django.shortcuts import redirect from django.utils.decorators import method_decorator from django.views.decorators.csrf import csrf_protect @@ -20,3 +22,9 @@ class CustomLoginView(LoginView): def form_invalid(self, form): messages.error(self.request, '用户名或密码错误。') return super().form_invalid(form) + + +def logout_view(request): + logout(request) + # Redirect to a success page, such as the home page + return redirect('user_login') diff --git a/templates/base.html b/templates/base.html index 928c830..cb148d3 100644 --- a/templates/base.html +++ b/templates/base.html @@ -419,16 +419,15 @@ {{ user.last_name }}{{ user.first_name }} {{ user.email }} {% else %} - - 游客 - 请登录 + {% endif %}