You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django报错NoReverseMatch:未找到'user_login'匹配项该如何解决?

django.urls.exceptions.NoReverseMatch: Reverse for 'user_login' not found. 'user_login' is not a valid view function or pattern name

问题原因

你的报错核心是路由命名和模板调用的名称不匹配,和path函数有没有类似正则$的符号无关。
你在basicapp/urls.py里给登录路由设置的name属性是login:

path('user_login/', views.user_login, name= 'login'),

但模板里调用路由时写的是{% url 'basicapp:user_login' %},系统找不到名为user_login的子应用路由,就触发了匹配错误。

解决方案

二选一即可:

  • 修改basicapp/urls.py的路由命名,把name改为user_login
    path('user_login/', views.user_login, name= 'user_login'),
    
  • 修改模板中的路由调用代码,改为匹配已有的命名
    <li><a class="navbar-link" href="{% url 'basicapp:login' %}">Login</a></li>
    

关于Django3+ path函数的补充说明

你之前的疑问是找不到正则$的替代方案,实际上path函数默认就是完全路径匹配,效果和旧版本url(r'^路径/$')的写法完全一致,不需要额外加任何符号,你原本的path写法没有问题,不是本次报错的原因。

额外优化建议

你basicapp/urls.py里的app_name = 'basicapp'前面有多余的缩进,建议改成顶格书写,避免后续出现语法隐患。

内容的提问来源于stack exchange,提问作者user31538

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:06:04