【发布时间】:2015-10-07 14:45:46
【问题描述】:
我有一个跨越多个应用程序的项目:
./project/app1
./project/app2
./project/...
每个应用程序都有一个用于 Django REST 框架的路由器,用于合并该应用程序提供的 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)),
]
因为应用程序是独立的,所以我的顶级 URL 文件 (./project/urls.py) 包含来自不同应用程序的每个 URL 文件:
url(r'^api/app1/', include('app1.urls', namespace='a1')),
url(r'^api/app2/', include('app2.urls', namespace='a2')),
这意味着 Django REST Framework 为每个应用程序显示一个单独的 API 根。然而,我想要的是一个统一的 API 结构,因此如果我导航到 http://example.com/api/,我会看到在该层次结构级别上可用的所有 URL 的完整列表。
我认为有一种方法可以将每个应用程序的单独 urls.py 文件中定义的所有单独路由器包含到单个路由器中,但我找不到有关如何执行此操作的文档。我错过了什么明显的东西吗?
【问题讨论】:
标签: django django-rest-framework