超链接到嵌套路由器的关系

时间:2015-09-14 01:08:54

标签: django django-rest-framework

我正在尝试创建自定义字段以将超链接呈现到嵌套路由器的列表视图(https://github.com/alanjds/drf-nested-routers

通常人们会将HyperlinkedRelatedField用于ManyToMany关系(使用many = True),但我需要/想要的只返回一个URL(因为端点是列表视图),而不是每个相关对象一个...是可能的重新发明轮子?

我创建了一个字段(https://github.com/alanjds/drf-nested-routers/blob/master/rest_framework_nested/relations.py#L63),它对外键非常有效,但对于ManyToMany关系却没有。

任何线索从哪里开始?我注意到很多= true的RelatedFields在https://github.com/tomchristie/django-rest-framework/blob/master/rest_framework/relations.py#L76自动转换为ManyRelatedFields但是afaik,这个ManyRelatedField也有解析传入数据的逻辑(POST,PUT,PATCH)......

无论如何,任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

显然,在与@tomchristie快速聊天之后,正确的方法是在序列化程序上使用HyperlinkedIdentityField。

关系本身应该应用于具有适当的HyperlinkedRelatedField的子元素,以处理关系本身的更改,因为这是明智的做法。