she*_*enk 7 django django-rest-framework
我似乎无法理解HyperlinkedIdentity和HyperlinkedRelated Fields之间的区别.我有一些问题似乎无法找到在线答案.
实际差异是什么?我什么时候想要使用一个与另一个.
我的下一个问题是说我有2个模型,项目和任务.
任务有一个ForeignKey到项目.如果我希望项目超链接到其中的任务,我将在ProjectSerializer中放置哪个超链接字段?假设我希望任务能够超链接回与它们相关的项目,我将在TaskSerializer中添加什么字段来补充ProjectSerializer?
使用超链接字段与仅使用常规嵌套序列化程序有什么区别?使用超链接字段时,我还可以按pk/id过滤吗?
最后,如果模型在序列化器中有两个超链接关系怎么办?根据我的理解,它为每个超链接创建一个url字段,在这种情况下它会创建两个url字段吗?
感谢您提供的任何澄清,这将有助于巩固我对该主题的理解,并允许我完成我的项目的API.
实际差异是什么?我什么时候想要使用一个与另一个.
HyperlinkedIdentityField是当前对象本身的超链接字段,同时HyperlinkedRelatedField表示指向其他实例的超链接.
任务有一个ForeignKey到项目.如果我希望项目超链接到其中的任务,我将在ProjectSerializer中放置哪个超链接字段?假设我希望任务能够超链接回与它们相关的项目,我将在TaskSerializer中添加什么字段来补充ProjectSerializer?
HyperlinkedRelatedField 是你在找什么.
使用超链接字段与仅使用常规嵌套序列化程序有什么区别?
可以独立于原始资源浏览超链接.如果其中一个属于另一个系统,则很方便.例如,您可能希望使用超链接来发送推文,而不是让您的服务器获取它们并将它们返回嵌套.超链接还允许客户端处理自己的缓存,而不是发回所有数据.在获取嵌套同一用户的项列表时可以很方便.
另一方面,超链接会增加网络请求数,因为它需要获取更多数据.
使用超链接字段时,我还可以按pk/id过滤吗?
不确定你的意思.
如果模型在序列化器中有两个超链接关系怎么办?根据我的理解,它为每个超链接创建一个url字段,在这种情况下它会创建两个url字段吗?
正确.超链接关系只是一种关系的表示.它提供了一个超链接(uri)来获取关联的对象.
这很有用,因为你不需要知道从id获取对象的模式:PrimaryKeyRelatedField你将获得id但是缺少获取关联对象的url.
这也允许服务器管理自己的uri空间而无需更新客户端.
希望这会有所帮助.
| 归档时间: |
|
| 查看次数: |
1416 次 |
| 最近记录: |