django - Django 无法覆盖注销视图
问题描述
我django.contrib.auth.urls
用来注销用户。我想要并且我有查看注销但我不知道为什么当我转到帐户/注销/ 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/', …)
订购,它将触发模块中的路径 [GitHub]。logout/
django.contrib.auth.urls
如果您更改顺序,它将首先与该视图匹配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'),
]
推荐阅读
- django - 构建提供 django 休息框架模型的可选反应日期字段的正确方法是什么?
- php - PHP SOAP - 给出不存在的 [HTTP] 内部服务器错误
- arrays - 将保存在数据库中的数组格式化为 laravel 中的刀片视图
- java - 从给定模式中选择 m 个不同对象的最快方法?
- android - LiveData + ViewModel + Room:公开查询返回的 LiveData 随时间变化(通过 fts 搜索)
- python - 如何用专门的字母打印一个字典值
- apache-spark - Spark SQL - 重新分区后分组
- python - 创建具有固定大小的窗口时,窗口大小大于特定大小
- python-3.x - 如何将此 for 循环更改为字典/列表理解?
- html - 填充未应用于角度材料中的 html 标记