令人沮丧的NoReverseMatch发现

时间:2013-01-03 15:03:58

标签: django django-templates

我很难调试这个特定错误。我的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      

反向'share_revoke',参数'(u'Sh4rE',)'和关键字参数'{}'找不到。

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

在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.

1 个答案:

答案 0 :(得分:0)

这最终不是问题。我的问题是SublimeText2 SFTP感到困惑,并没有覆盖我服务器上的urls.py,因此有大量的wtf。