我需要在下面的url中捕获url参数 “/portal/{pk}/portalProject/{pk}”
以下url未指向下面的视图函数。这里怎么了?在
在网址.py在
router = routers.DefaultRouter()
router.register(r'movies', MoviesViewSet)
router.register(r'project', ClientViewSet)
router.register(r'portal', PortalViewSet)
router.register(r'portal/(?P<portal_pk>\d+)/portalProject/(?P<portalProject_pk>\d+)/$', PortalViewSet, 'portalProject')
router.register(r'portalProject', PortalProjectViewSet)
在视图.py在
^{pr2}$
您实际上并没有在^{} 中声明特定的路由。
router
负责为您创建所有子url。只要做router.register(r'portal', PortalViewSet)
就会给你:@list_route
修饰方法@detail_route
修饰方法所以除非你想创建一个自定义路由器,否则你必须将你的url模式改成
/portal/{pk}/portalProject/?id={pk}
另外,如果您是通过
pk
请求portalProject
,那么就不需要将url嵌套在/portal/{pk}
下。portalProject
的pk
已经足够具体了。您已经有了portalProject
的路径,因此您将有效地获得两种访问同一数据的方法,其中一种更为复杂,毫无理由。不过,我相信这就是你想要的:
https://github.com/alanjds/drf-nested-routers
或https://chibisov.github.io/drf-extensions/docs/#nested-routes
相关问题 更多 >
编程相关推荐