Django项目logout功能触发NoReverseMatch错误如何修复?
问题修复方案
核心原因
你编写了logout_view视图函数,但没有在路由配置文件urls.py中为它注册对应的路由规则,Django无法通过{% url 'logout_view' %}反向解析到对应地址,所以抛出NoReverseMatch错误。另外报错信息中提到的logot_view大概率是拼写错误,需要核对模板中的路由名称拼写和路由配置的name参数完全一致。
具体操作步骤
- 第一步:修改
urls.py,在urlpatterns列表中新增logout_view的路由配置:
urlpatterns = [ path('',views.login,name='login'), path('zZ6jMGa8tBHYcjPS/',views.dash,name='dash'), # 新增登出路由 path('logout/', views.logout_view, name='logout_view'), ]
- 第二步:核对
dash.html中的退出链接拼写,确认是{% url 'logout_view' %},没有出现logot_view这类拼写错误。 - (可选优化)给仪表盘视图加上登录校验装饰器,避免未登录用户直接访问后台:
# 修改views.py中的dash函数 from django.contrib.auth.decorators import login_required @login_required(login_url='login') def dash(request): return render(request, 'pages/dash.html')
修改完成后重启项目即可正常使用登出功能。
内容的提问来源于stack exchange,提问作者Elfo
相关产品推荐
相关产品推荐

