Django REST框架中的嵌套URL模式

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/ ^

我试图超越Django REST框架的初始平面URL模式。例如,如果我有对象类型parentobject和childobject,其中parentobject有childobject,那么开箱即用的其余部分如下所示

^ ^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扩展中提出,请查看