2017-11-19 10 views
0

を定義されている場合でも、私は私のrest_api.urls.pyDjangoの残りのフレームワーク:NoReverseMatchエラーパターン名が

urlpatterns = [ 
url(r'', api_root), 
url(r'^books/$', BookList.as_view(), name='api_book_list'), 
url(r'^books/(?P<pk>[0-9]+)/$', BookDetail.as_view(), name='book-detail'), 


url(r'^users/$', UserList.as_view(), name='api_user_list'), 
url(r'^users/(?P<pk>[0-9]+)/$', UserDetail.as_view(), name='user-detail'), 
] 
で呼ばれる私のv​​iews.py

@api_view(['GET']) 
def api_root(request, format=None): 
    return Response({ 
     'books': reverse('api_book_list'), 
     'users': reverse('api_user_list') 
}) 

でapi_rootを作成しました以下のURL-config設定とrest_api.urls.pyへ

マイプロジェクトルートurls.pyリンク:まだ

url(r'^api/v1/', include('rest_api.urls', namespace='api')), 

、私が訪問します/誰もがDjangoはまだ文句を言わないことを認識し、なぜアイデアを持っていない、

NoReverseMatch at /api/v1/ 
Reverse for 'api_book_list' not found. 'api_book_list' is not a valid view 
function or pattern name. 

しかし、私は私のurls.pyでパターン名を定義しました:API/V1 /ページには、私は次のエラーを取得しますか?

答えて

1

あなたはが、おかげでそれを解決し

reverse('api:api_book_list') 
reverse('api:api_user_list') 

Read official docs: Reversing namespace urls

+1

を反転させながらURL名の前にapiを追加必要なので、あなたはルートURLにnamespace='api'を定義しています! – Jasper

関連する問題