我正在尝试在get_absolute_url()中使用反向函数,但它没有为视图找到正确的反向匹配。我的url.py没有任何错误,因为我可以通过url“traildetail / 4”等访问该视图,所有其他网址都正常工作。
我有以下视图功能:
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
答案 0 :(得分:2)
供将来参考 - 您可以像这样访问网址:
reverse('get-trail-detail', kwargs={'trail_id': 3})