我试图在 get_absolute_url() 中使用反向函数,但它没有为 View 找到正确的反向匹配。我的 url.py 没有任何错误,因为我可以通过 url "traildetail/4"等访问该 View ,并且所有其他 url 都可以正常工作。
我有以下 View 函数:
def get_trail_detail(request, trail_id=None):
'''
'''
return HttpResponse(str(trail_id))
我还在 urls.py 中定义了以下网址。
url(r'^traildetail/(?P<trail_id>\d{1,5})/$', 'get_trail_detail', name='get-trail-detail'),
因此,当我在 django shell 中运行以下代码时,出现 NoReverseMatch 错误:
reverse('trails.views.get_trail_detail',None, kwargs={'trail_id': '3'})
reverse('trails.views.get_trail_detail', args=[str(1)])
reverse('trails.views.get_trail_detail', kwargs={'trail_id': '3'})
对于上述所有尝试,我收到以下 错误::
File "/usr/local/lib/python2.7/dist-packages/django/core/urlresolvers.py", line 416, in _reverse_with_prefix
"arguments '%s' not found." % (lookup_view_s, args, kwargs))
NoReverseMatch: Reverse for 'trails.views.get_trail_detail' with arguments '()' and keyword arguments '{'trail_id': '3'}' not found
enter code here
最佳答案
供将来引用 - 您可以像这样访问网址:
reverse('get-trail-detail', kwargs={'trail_id': 3})
关于get_absolute_url() 中的 Django reverse() 不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16971428/