发现令人沮丧的 NoReverseMatch

Posted

技术标签:

【中文标题】发现令人沮丧的 NoReverseMatch【英文标题】:Frustrating NoReverseMatch Found 【发布时间】:2012-12-17 23:10:03 【问题描述】:

我很难调试这个特定的错误。我的urls.py 中有以下内容:

url(r'^report/(?P<share_url>\w+)/$', 'share', 
  name='share'),
url(r'^report/(?P<share_url>\w+)/revoke/$', 'share_revoke',
  name='share_revoke'),

views.py 我有:

def share(request, share_url):
  ...

@login_required
def share_revoke(request, share_url):
  ...

在我的模板中,我有:

<a href='% url share share_url %'>Share</a>
<a href='% url share_revoke share_url %'>Revoke</a>

当我尝试加载此模板时,我得到一个NoReverseMatch

/mypath/ 处的 NoReverseMatch

未找到带有参数“(u'Sh4rE',)”和关键字参数“”的“share_revoke”的反向操作。

为什么第二个网址失败而不是第一个?我已登录。

在 shell 上试​​试这个:

>>> reverse('share',args=(u'klajsdf',))
'/report/klajsdf/'

>>> reverse('share_revoke',args=(u'klajsdf',))
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/ubuntu/virt/virt1/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 476, in reverse
    return iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))
  File "/home/ubuntu/virt/virt1/local/lib/python2.7/site-packages/django/core/urlresolvers.py", line 396, in _reverse_with_prefix
    "arguments '%s' not found." % (lookup_view_s, args, kwargs))
NoReverseMatch: Reverse for 'share_revoke' with arguments '(u'klajsdf',)' and keyword arguments '' not found.

【问题讨论】:

试试这个 SO 问题并回答***.com/questions/1842389/… 验证 share_revoke share_url 是否包含正确的数据 @RickardZachrisson 确实如此。 你的意思是 'share' 而不是 'share_url' 实际上在 reverse('share_url',args=(u'klajsdf',)) @okm 是的,我愿意,好地方 【参考方案1】:

这最终不是问题。我的问题是 SublimeText2 SFTP 被混淆了,并没有覆盖我服务器上的urls.py,因此大量的 wtf。

【讨论】:

以上是关于发现令人沮丧的 NoReverseMatch的主要内容,如果未能解决你的问题,请参考以下文章

复制资产/资源使 iOS 测试令人沮丧

令人沮丧的 PL/SQL 错误...PLS-00103

在 MacOS 上安装 Spyder/Python - 非常令人沮丧

琐碎的 PL/SQL 块生成令人沮丧的 PLS-00103 错误

Imagemagick的导入速度令人沮丧

物联网时代到来,您的IT管理准备好了吗?