restframework 序列化和反序列化外键
1|0前言
- 这是博主第一次接触学习restframework框架,很多知识点零散不系统,在这不建议将此文作为指导方向。
- 在此文讲解前,不会说明安装和配置信息,大家可以百度如何安装restframework,并自行安装成功就行。
- 在此会讲解几种序列化和反序列化的方法,表的设计是一对多结构。
2|0代码实现
2|1序列化
首先我们在models下新建两个模型类
每个模型定义一个serializers.ModelSerializer
通过postman请求我们的接口可以看到,author作为外键序列化后,返回的是User里的id。(忽略字段_create_time和_update_time)
如果我们想要返回具体外键里的值,应该怎么看呢。
- 第一种方法: 在Meta中定义一个深度
depth=1
- 实现效果,可以看到会把外键相关的表数据序列化出来,而且是不可控的把表数据字段读了出来。但我们可能并不需要那么多的数据,包括用户密码等字段。
- 第二种方法: 我们定义一个
get_author()
方法
- 实现效果: 可以看到,按照我们定义的方法返回了值,需要什么数据可以在get_author中添加即可,想要反序列化
{"author": 1}
作为外键添加时,不得有depth=1
。
2|2反序列化
可以在serializers.ModelSerializer
中定义与author字段相同的属性,并实例化serializers.PrimaryKeyRelatedField
对象
实现效果:
__EOF__

本文作者:吹神
本文链接:https://www.cnblogs.com/se7enjean/p/13186675.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/se7enjean/p/13186675.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix