【发布时间】:2017-01-16 23:08:20
【问题描述】:
有没有办法在 api 根目录中同时显示 ViewSet 端点(由路由器生成)和经典端点(在每个应用程序的 urls.py 中定义)?
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/"
}
这是我想要得到的结果。但目前我只能显示路由器网址或经典网址,但不能同时显示两者。当我尝试显示多个路由器时,它只显示第一个(如 django 文档中所述)。有没有办法做到这一点?
【问题讨论】:
标签: url django-rest-framework router endpoint