3

get_absolute_url() で逆関数を使用しようとしていますが、ビューの正しい逆一致が見つかりません。URL「traildetail/4」などからそのビューにアクセスでき、他のすべてのURLは正常に機能しているため、url.pyにエラーはありません。

次のビュー機能があります。

def get_trail_detail(request, trail_id=None):
    '''
    '''
    return HttpResponse(str(trail_id))

また、次の URL がurls.pyで定義されています。

url(r'^traildetail/(?P<trail_id>\d{1,5})/$', 'get_trail_detail', name='get-trail-detail'),

したがって、 django シェルで次のコードを実行すると、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
4

1 に答える 1