dan*_*ast 12 python django django-rest-framework
我有一个可浏览的API:
restaurant_router = DefaultRouter()
restaurant_router.register(r'rooms', RoomsViewSet)
restaurant_router.register(r'printers', PrintersViewSet)
restaurant_router.register(r'shifts', ShiftsViewSet)
urlpatterns = patterns('',
url(r'^$', api_root),
url(r'^restaurant/$',
RestaurantView.as_view(),
name='api_restaurants_restaurant'),
url(r'^restaurant/', include(restaurant_router.urls)),
)
Run Code Online (Sandbox Code Playgroud)
在api_root我可以链接到命名路线:
@api_view(('GET',))
def api_root(request, format=None):
return Response({
'restaurant': reverse('api_restaurants_restaurant', request=request, format=format),
})
Run Code Online (Sandbox Code Playgroud)
或者我可以使用由生成的可浏览API DefaultRouter,如文档中所述:
我们正在使用的DefaultRouter类也会自动为我们创建API根视图,因此我们现在可以从views模块中删除api_root方法.
如果我想混合ViewSets和普通视图,并在同一个API根目录中显示所有内容,该怎么办?该DefaultRouter只列出ViewSet它控制秒.
Jkk*_*nah -1
看起来没有一个简单的方法可以使用 DefaultRouter 来做到这一点,您必须构建自己的路由器。如果有任何安慰的话,DefaultRouter 生成 APIRoot 视图的逻辑相当简单,您可能可以轻松地基于 DefaultRouter 类推出您自己的类似路由器(例如,修改 ApiRoot 类实现以获取要包含的其他 URL,您可以在任何有多种方式,例如将它们传递到路由器的构造函数中):
| 归档时间: |
|
| 查看次数: |
452 次 |
| 最近记录: |