Django 无法覆盖注销视图



我使用django.contrib.auth.urls注销用户。我想要并且我有注销视图,但我不知道为什么当我转到accounts/logout/url-django时不使用我的,而是注销的默认视图。

from django.urls import path, include
import django.contrib.auth.urls
from . import views
app_name = 'accounts'
urlpatterns = [
path('', views.index, name='index'),
path('accounts/', include('django.contrib.auth.urls')),
path('accounts/sign_up/', views.sign_up, name="sign-up"),
path('accounts/logout/', views.logout_view, name="logout"),

]

def logout_view(request):
print(request.user)
context = {'user2': request.user}
logout(request)
return render(request, 'accounts/logged_out.html', context)

由于path('accouts/', …)是先排序的,它将触发django.contrib.auth.urls模块中的logout/路径[GitHub]。

如果您更改顺序,它将首先与logout_view匹配并激发该视图:

urlpatterns = [
path('', views.index, name='index'),
path('accounts/logout/', views.logout_view, name='logout'),
path('accounts/', include('django.contrib.auth.urls')),
path('accounts/sign_up/', views.sign_up, name='sign-up'),
]

最新更新