У меня есть просматриваемый 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)),
)
В api_root
я могу ссылаться на именованный маршрут:
@api_view(('GET',))
def api_root(request, format=None):
return Response({
'restaurant': reverse('api_restaurants_restaurant', request=request, format=format),
})
Или я могу использовать API для просмотра, созданный с помощью DefaultRouter
, как описано в документации:
Класс DefaultRouter, который мы используем, также автоматически создает API root для нас, поэтому теперь мы можем удалить метод api_root из нашего просмотра.
Что мне делать, если я хочу смешивать ViewSet
и обычные представления и показывать все в одном корне API? DefaultRouter
содержит только ViewSet
, который он контролирует.