mam browsable API:Mix Zobacz i ViewSet w do przeglądania api_root
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)),
)
W api_root
mogę połączyć do nazwanego trasy:
@api_view(('GET',))
def api_root(request, format=None):
return Response({
'restaurant': reverse('api_restaurants_restaurant', request=request, format=format),
})
Albo mogę używać możliwym do przeglądania API wygenerowany przez DefaultRouter
, jak wyjaśniono w dokumentacji:
Klasy DefaultRouter używamy również utomatycznie tworzy dla nas widok główny API , dzięki czemu możemy teraz usunąć metodę api_root z naszego modułu widoków .
Co mam zrobić, jeśli chcę wymieszać ze standardowymi widokami ViewSet
s i wyświetlić wszystko w tym samym katalogu głównym interfejsu API? DefaultRouter
wyświetla tylko listę ViewSet
, którą kontroluje.
Co rozumiesz przez "mieszanie zestawów widoków i widoków normalnych". Co dokładnie chcesz robić? – mariodev
@mariodev: Chcę mieć przeglądany widok API (automatycznie generowane drzewo przeglądania), gdzie niektóre adresy URL są generowane z zestawu widoków, a niektóre z widoków normalnych. Działa to, gdy masz DefaultRouter z ViewSets, ale zaraz po rozpoczęciu dodawania url_patterns pochodzących z Views (nie ViewSets), rozkłada się. – dangonfast