2017-03-23 5 views
1

DRFドキュメントをinclude_docs_urlsに設定すると、HTMLページはプロジェクトのurls.pyに明示されたモジュールのみをレンダリングします。 しかし、すべてのモジュールはurlpatternsに追加され、django.conf.urls.includeの機能を持つHTMLレンダラは無視します。しかし、coreapi-cliは正しいスキーマを得ます。DRFドキュメントモジュールは正しいシェーマを取得しますが、HTMLレンダラーでは失敗します

コードがある場合:

api_patterns = [ 
    url(r'^api-token-refresh/$', refresh_jwt_token), 
    url(r'^api-token-verify/$', verify_jwt_token), 
] 

urlpatterns = [ 
    url(r'^$', HTMLReport.as_view()), 
    url(r'^admin/', admin.site.urls), 
    url(r'^vending/', include('vending.urls')), 
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), 
    url(r'^api-token-auth/$', obtain_jwt_token), 
    url(r'^api-tools/$', include(api_patterns)), 
    url(r'^docs/', include_docs_urls(title='TMS API', description='Terminal Management System API', public=True)) 
] 

HTMLはvending.urls、およびapi_patternsのためのドキュメントを無視します。コードがある場合

しかし:

urlpatterns = [ 
    url(r'^$', HTMLReport.as_view()), 
    url(r'^admin/', admin.site.urls), 
    url(r'^vending/', include('vending.urls')), 
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), 
    url(r'^api-token-auth/$', obtain_jwt_token), 
    url(r'^api-token-refresh/$', refresh_jwt_token), 
    url(r'^api-token-verify/$', verify_jwt_token), 
    url(r'^docs/', include_docs_urls(title='TMS API', description='Terminal Management System API', public=True)) 
] 

のみ vending.urls無視されます。

答えて

1

代わりの

url(r'^api-tools/$', include(api_patterns)), 

url_patternsの連結を使用してみてください:

urlpatterns + api_patterns 

と、このように

url(r'^vending/', include('vending.urls')), 

の位置を変更します。

urlpatterns = [ 
    url(r'^$', HTMLReport.as_view()), 
    url(r'^admin/', admin.site.urls), 
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')), 
    url(r'^api-token-auth/$', obtain_jwt_token), 
    url(r'^docs/', include_docs_urls(title='TMS API', description='Terminal Management System API', public=True)) 
    url(r'^vending/', include('vending.urls')), 
] 
urlpatterns + api_patterns 

まだvending.urlsが無視される場合は、名前空間を使用してみてください。

関連する問題