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

Django中URL与参数正确却出现NoReverseMatch错误求助

解决Django的NoReverseMatch错误问题

我一眼就揪出问题所在了——你给assign_profile配置的URL正则表达式里,profile参数的匹配规则是[A-Za-z0-9]+,但你在模板里传的profile值是super_agent,这里面的下划线_不在允许的字符范围内,所以Django找不到对应的URL匹配,直接抛出了NoReverseMatch错误。

1. 核心修复:修改URL正则表达式

把assign_profile的URL配置里,profile参数的正则改成包含下划线的版本,这样就能匹配带下划线的字符串了:

url(r'assign/(?P<pk>[A-Za-z0-9]+)/profile/(?P<profile>[A-Za-z0-9_]+)/$', views.assign_profile, name='assign_profile'),

2. 额外验证点(避免踩其他坑)

顺便帮你排查下其他可能的小问题:

  • 确认你的URL配置确实放在了portfolio命名空间下(因为模板里用了portfolio:assign_profile),如果是在app的urls.py里,要确保主urls.py里include时指定了namespace:
# 主urls.py示例
url(r'^portfolio/', include('portfolio.urls', namespace='portfolio')),
  • 你的agent.code_agent值是1,这个完全符合pk的正则[A-Za-z0-9]+,这部分没问题。

3. 测试修复效果

修改完正则后,重启Django服务,再访问对应的页面,应该就能正常生成URL,不会再出现NoReverseMatch错误了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:00:46