Django出现NoReverseMatch错误:无法找到'login'的反向匹配
解决Django NoReverseMatch: 'login' 路由匹配失败问题
核心问题
你的应用urls.py中,login路由没有设置name属性,导致模板里的{% url 'login' %}无法找到对应的路由规则。对比已正常工作的logout路由(已配置name="logout"),login路由缺少关键的name参数。
修复步骤
修改应用urls.py中的login路由,补充name="login"参数:
from django.contrib import admin from django.urls import path, include from . import views from django.contrib.auth import views as auth_views from .forms import * urlpatterns = [ path('', views.index, name="index"), path('admin/', admin.site.urls), path('register/', views.UserSignupView.as_view(), name="register"), # 为login路由添加name参数 path('login/', auth_views.LoginView.as_view(template_name="login.html", authentication_form=UserLoginForm), name="login"), path('logout/', views.logout_user, name="logout"), ]
额外检查点
- 确认项目
urls.py中include('templates.urls')的应用名称正确,若你的应用实际名称不是templates,需同步修改此处的引入路径。 - 当前配置下无需额外添加命名空间,只要路由
name设置正确,模板中的{% url 'login' %}即可正常匹配。
内容的提问来源于stack exchange,提问作者Guilherme Jorge Gomes Neto
相关产品推荐
相关产品推荐

