【发布时间】:2015-10-06 14:40:42
【问题描述】:
我有这个基本网址文件:
url(r'^locations/', include('locations.urls')),
在locations.urls.py 应用程序中,我有以下网址引用:
url(r'^/?$', LocationList.as_view()),
url(r'^(?P<pk>[a-zA-Z0-9\-\$]+)/?$', LocationDetail.as_view()),
url(r'services/?$', LocationServiceseList.as_view()),
url(r'services/(?P<service_id>[a-zA-Z0-9\-\$]+)/?$', LocationServicesDetail.as_view()),
对于上面的 url 参考我想用户 routers 的 Django-Rest-framework
对于locations/services/,我从 DRF 创建了 GenericViewSet,我尝试路由器成功地在 location.urls 中进行了以下更改:
router = routers.SimpleRouter()
router.register(r'services', LocationServiceSet)
url(r'^/?$', LocationList.as_view()),
url(r'^(?P<vehicle_id>[a-zA-Z0-9\-\$]+)/?$', LocationDetail.as_view()),
url(r'^', include(router.urls)),
现在我想为/locations/ 端点创建路由器并进行以下更改
router = routers.SimpleRouter()
router.register(r'services', LocationServiceSet)
router.register(r'', LocationSet)
url(r'^', include(router.urls)),
虽然/locations/services/ 工作正常,但使用堆栈跟踪显示 /locations/ 得到 404:
^locations/ ^ ^services/$ [name='locationsservice-list']
^locations/ ^ ^services/(?P<pk>[^/.]+)/$ [name='locationsservice-detail']
^locations/ ^ ^/$ [name='locations-list']
^locations/ ^ ^/(?P<pk>[^/.]+)/$ [name='locations-detail']
【问题讨论】: