Django REST框架中的嵌套URL模式
我试图超越Django REST框架的初始平面URL模式。例如,如果我有对象类型parentobject和childobject,其中parentobject有childobject,那么开箱即用的其余部分如下所示Django REST框架中的嵌套URL模式,django,rest,django-rest-framework,Django,Rest,Django Rest Framework,我试图超越Django REST框架的初始平面URL模式。例如,如果我有对象类型parentobject和childobject,其中parentobject有childobject,那么开箱即用的其余部分如下所示 ^ ^api/ ^ ^parentobject/$ [name='parentobject-list'] ^ ^api/ ^ ^parentobject/\.(?P<format>[a-z]+)$ [name='parentobject-list'] ^ ^api/ ^
^ ^api/ ^ ^parentobject/$ [name='parentobject-list']
^ ^api/ ^ ^parentobject/\.(?P<format>[a-z]+)$ [name='parentobject-list']
^ ^api/ ^ ^parentobject/(?P<pk>[^/]+)/$ [name='parentobject-detail']
^ ^api/ ^ ^parentobject/(?P<pk>[^/]+)/\.(?P<format>[a-z]+)$ [name='parentobject-detail']
^ ^api/ ^ ^childobject/$ [name='childobject-list']
^ ^api/ ^ ^childobject/\.(?P<format>[a-z]+)$ [name='childobject-list']
^ ^api/ ^ ^childobject/(?P<pk>[^/]+)/$ [name='childobject-detail']
^ ^api/ ^ ^childobject/(?P<pk>[^/]+)/\.(?P<format>[a-z]+)$ [name='childobject-detail']
如果需要有关childobject(或db中的所有childobject)的详细信息,可以参考childobject api
/api/childobject/
/api/childobject/123/
/api/parentobject/1/childobject/
[
{
"childobject_prop": 1
...etc
}
]
还是在同一页上?:)
我想做的是创建一种通用/可扩展的方式,通过parentobject api引用子m2m关系,而无需提取ID,然后重新查询childobject api
/api/childobject/
/api/childobject/123/
/api/parentobject/1/childobject/
[
{
"childobject_prop": 1
...etc
}
]
因此,上面的子对象将根据Django管理的m2m-through表中的parentobject引用进行过滤
我的想法是,这将是通用的,在某种程度上,我可以定义一个新的直通关系,并以最少的工作量拥有这种能力。e、 g.url模式将自动更新,等等
此外,任何递减关系都将以相同的方式处理。这样,下面的“someotherchildobject”将返回映射到childobject“123”且映射到parentobject“1”的someotherchildobject的列表
/api/parentobject/1/childobject/123/someotherchildobject/
如果这还不够清楚,请告诉我。到目前为止,我的成功是有限的。我不想通过修改Django REST来实现这一点,同时我也不想通过将我感兴趣的特定URL模式添加到URL模式中来“手动”构建URL模式
另外,作为奖励,我希望这适用于Django中的CUSTOM-through=表;并将through表上的任何其他字段映射到返回数据中的字段
谢谢 你应该调查一下
这已在同样提供嵌套路由的drf扩展中提出,请查看