我有一个跨多个应用程序的项目:
./project/app1
./project/app2
./project/...
Run Code Online (Sandbox Code Playgroud)
每个应用程序都有一个Django REST Framework路由器,可以整合该应用程序提供的API部分:
from django.conf.urls import url, include
from rest_framework.routers import DefaultRouter
from .views import ThingViewSet
router = DefaultRouter()
router.register(r'things', ThingViewSet, base_name='thing')
urlpatterns = [
url(r'^', include(router.urls)),
]
Run Code Online (Sandbox Code Playgroud)
由于应用是独立的,因此我的顶级网址file(./project/urls.py)包含来自不同应用的每个网址文件:
url(r'^api/app1/', include('app1.urls', namespace='a1')),
url(r'^api/app2/', include('app2.urls', namespace='a2')),
Run Code Online (Sandbox Code Playgroud)
这意味着Django REST Framework为每个应用程序显示一个单独的API根目录.但是,我想要的是一个统一的API结构,因此,如果我导航到http://example.com/api/我,我会看到该层次结构中所有可用URL的完整列表.
我认为有一种方法可以将urls.py每个应用程序的单个文件中定义的所有单独路由器包含在一个路由器中,但是我找不到有关如何执行此操作的文档.我错过了一些明显的东西吗