0
ViewSetエンドポイント(ルータで生成)と古典的エンドポイント(各アプリケーションのurls.pyで定義)を一緒に表示する方法はありますか? ?django restフレームワーク表示apiルートのすべてのアプリケーションのViewSetと古典的なエンドポイント
APP1のurl.py:
router = DefaultRouter()
router.register(r'^foo', views.FooViewSet)
urlpatterns = [
url(r'^', include(router.urls)),
url('bar/', views.BarListView.as_view(), name='bar-list'),
url('baz/', views.BazListView.as_view(), name='baz-list'),
]
APP2のurl.py:
router = DefaultRouter()
router.register(r'^qux', views.QuxFooViewSet)
urlpatterns = [
url(r'^', include(router.urls)),
url('quux/', views.QuuxListView.as_view(), name='quux-list'),
url('corge/', views.CorgeListView.as_view(), name='corge-list'),
]
グローバルurl.py:
urlpatterns = [
url(r'^', include('app1.urls')),
url(r'^', include('app2.urls')),
]
API-ルート:
HTTP 200 OK
Allow: GET, OPTIONS
Content-Type: application/json
Vary: Accept
{
"foo": "http://localhost:8000/foo/",
"bar": "http://localhost:8000/bar/"
"baz": "http://localhost:8000/baz/"
"qux": "http://localhost:8000/qux/"
"quux": "http://localhost:8000/quux/"
"corge": "http://localhost:8000/corge/"
}
これは私が得たい結果です。しかし、現時点では、ルータのURLまたは古典的なURLだけを表示することができますが、両方を表示することはできません。そして、複数のルータを表示しようとすると、最初のものだけが表示されます(djangoのドキュメントで説明されています)。それを行う方法はありますか?
ありがとうございました!そして私はあなたの提案をこの記事で説明した共有ルータと組み合わせました:http://stackoverflow.com/questions/20825029/registering-api-in-apps – Ben