Django自定义注册页触发NoReverseMatch,导航栏URL标签解析失败
问题解决方法
你遇到的NoReverseMatch错误根源在accounts/urls.py里的配置错误:
- 你的
accounts/urls.py里错误地把app_name设成了'jobs',但这个URL配置属于accounts应用,而且项目主URL里给它的namespace是'accounts',两者不匹配导致了命名空间冲突,进而在注册页面渲染时无法正确解析jobs:job_list这个URL标签。
修复步骤
- 打开
accounts/urls.py,把app_name = 'jobs'改成app_name = 'accounts',修改后的代码如下:
from django.urls import path from . import views app_name = 'accounts' urlpatterns = [ path('signup', views.sign_up, name='sign_up'), ]
- 保存文件后重启Django开发服务器,注册页面就能正常渲染,导航栏的
Browse Job链接也能正确解析了。
补充说明
Django的命名空间(namespace)和应用名称(app_name)需要对应:项目主URL中include('accounts.urls', namespace='accounts'),就要求accounts应用的urls配置里app_name必须设为'accounts',这样Django才能正确区分不同应用的URL命名空间,避免解析混淆。
内容的提问来源于stack exchange,提问作者Abd El Rhman Basel
相关产品推荐
相关产品推荐

