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

Django出现NoReverseMatch错误:找不到'my_url'的反向解析

排查Django NoReverseMatch错误:Reverse for 'my_url' not found

嘿,这个NoReverseMatch错误在Django开发里太常见了!结合你给出的urls.py配置,咱们一步步拆解可能的原因和解决办法:

1. 反转URL时未指定应用命名空间

你的配置里已经明确设置了app_name = 'base',这意味着所有该应用下的URL都属于base命名空间。如果反转时没带上这个命名空间,Django就找不到对应的URL:

  • 模板中错误写法:{% url 'my_url' %}
  • 正确写法:{% url 'base:my_url' %}

在视图函数里反转也要加上命名空间:

  • 错误写法:reverse('my_url')
  • 正确写法:reverse('base:my_url') 或者 reverse('my_url', namespace='base')

2. URL名称拼写完全不匹配

先仔细核对:你要反转的my_url是不是真的在urlpatterns里存在?看你提供的配置,目前只有index、newresume、profile这几个URL名称。如果my_url是笔误(比如把newresume写成了my_url),那肯定会报错。注意Django的URL名称是大小写敏感的,哪怕差一个字母都不行。

3. 带参数的URL反转时缺少必要参数

如果my_url是类似profile这种需要参数的URL(它需要pk参数),反转时必须传入对应参数,否则会触发错误:

  • 模板中正确写法:{% url 'base:profile' pk=user.id %}
  • 视图中正确写法:reverse('base:profile', kwargs={'pk': 123})

4. 动态参数不符合URL正则规则

如果my_url对应的URL有正则匹配要求(比如profile的pk要求是数字[0-9]+),反转时传入的参数必须符合这个规则。比如你传了字符串类型的pk,就会因为无法匹配正则导致反转失败。

先从这几个方向排查,基本能解决大部分NoReverseMatch的问题!

内容的提问来源于stack exchange,提问作者Дмитрий Кабоскин

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:27:35