По существу, в зависимости от того, в каком порядке я добавляю свои маршруты к моему urlpatterns
, API-интерфейс, доступный для просмотра, будет показывать только один маршрутизатор за раз. Вот мой код:API только для просмотра DRF показывает только один маршрутизатор
urls.py:
from django.conf.urls import url, include
from rest_framework import routers
from .views import PlantViewSet
# url router
router = routers.DefaultRouter()
router.register(r'plants', PlantViewSet, base_name='Plants')
djoser_urls = [url(r'^', include('djoser.urls')), ]
urlpatterns = [
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^docs/', include('rest_framework_swagger.urls')),
# url(r'^', include(router.urls)),
# url(r'^', include('djoser.urls')),
] + djoser_urls + router.urls
Это только отображает djoser
URLs:
Однако просто изменить порядок, в котором я добавляю URLs:
urls.py:
from django.conf.urls import url, include
from rest_framework import routers
from .views import PlantViewSet
# url router
router = routers.DefaultRouter()
router.register(r'plants', PlantViewSet, base_name='Plants')
djoser_urls = [url(r'^', include('djoser.urls')), ]
urlpatterns = [
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
url(r'^docs/', include('rest_framework_swagger.urls')),
# url(r'^', include(router.urls)),
# url(r'^', include('djoser.urls')),
] + router.urls + djoser_urls
Это отображает только router
URL!
То же самое происходит, когда я просто использовать include()
линии я закомментированные, что наступит первым в списке является единственным маршрутизатором, который получает отображается. Кроме того, независимо от того, какой роутер получает подхват, ссылки api-auth/
и docs/
никогда не отображаются. В любом случае, чтобы получить единый корень api без необходимости создания собственного пользовательского представления?
Drat. Ну ладно, спасибо за помощь! – pdeuchler