djangorestframework modelserializer 处理关系字段

djangorestframework modelserializer 处理关系字段

1.关系

        一对一、多对一、多对多

2.drf modelserializer对关系字段的处理

        modelserializer默认处理关系字段为PrimaryKeyRelatedField,默认是id-pk。

        多对一:直接写入id

        多对多:写入id-list [id1, id2]

3.具体细节

        [1] read_only设置serializer字段后,只能序列化;反序列化输入只保存在initial_data,不进入validated_data中

        [2] modelserializer中底层可以处理validated_data中的多对多关系,但是read_only设置后,validated_data不包含多对多关系;因此在重写save,再单独处理多对多关系

        [3] drf modelserialzier中处理多对多关系,首先处理非多对多关系,然后save,再处理多对多关系。如样例代码!

        instance.set是底层自动调用django orm执行,写入多对多第三张表!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/224830.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

选择aspera替代方案的理由,有哪些aspera替代方案

Aspera是一种快速数据传输协议和工具,它使用高效的UDP协议和复杂的流控制算法来实现可靠、高速的数据传输。该协议和工具广泛应用于媒体和娱乐行业、金融服务和其他需要大规模数据传输的领域。然而,Aspera的高昂价格和限制性许可证可能使得某些企业寻找替…

评测|PolarDB MySQL 版 Serverless

评测|PolarDB MySQL 版 Serverless 目录 一、测试背景 1.1、云原生数据库 PolarDB Serverless新架构概念 1.2、Serverless资源弹性扩缩触发条件 二、PolarDB的Serverless能力与同类型产品进行对比 三、动态弹性升降资源的能力测试 3.1、测试资源 3.2、测试一…

JAVA的一些便捷性方法(Object)

在IDEA中,如何查看JDK的源码? CTRL B; 常用方法: 1.equals() booleanequals(Object obj) 指示其他某个对象是否与此对象“相等”。 与 的比较: ,即可判断基本类型,也…

基于Java SSM框架+Vue实现疫情期间医院门诊网站项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架Vue实现疫情期间医院门诊网站演示 摘要 21世纪的到来,国家的方方面面、各行各业都在努力与现代的先进技术接轨,智能科技时代崛起的优势,医院门诊管理系统当然也不能排除在外。疫情期间医院门诊管理系统是以实际运用为开发背…

unity学习笔记10

一、生命周期函数 1.Awake() 调用时间:对象被激活或创建时。 用途:通常用于初始化对象的状态,获取组件引用或执行其他在脚本生命周期早期需要完成的任务。 2.OnEnable(): 调用时间:对象激活时,包括对象被创建和Se…

CentOS添加开机启动

1.编写项目启动脚本(run.sh) #!/bin/bash-切换到程序所在路径 cd /home/cavs_install/app/cavs-admin/target/ # 等待其他组件启动完毕后再启动本项目(如果不需要等待,本步骤可省略) sleep 300 # 实际启动命令 nohup …

SAP_ABAP_编程基础_字符转换_内存表、jsonString 相互转换

SAP ABAP 顾问(开发工程师)能力模型_Terry谈企业数字化的博客-CSDN博客文章浏览阅读441次。目标:基于对SAP abap 顾问能力模型的梳理,给一年左右经验的abaper 快速成长为三年经验提供超级燃料!https://blog.csdn.net/j…

misc:Banmabanma

题目 下载附件之后,里面是一张图片 身上的条纹很像二维码,扫扫看看 得到flag

Vue3 + Scss 实现主题切换效果

Vue3 Scss 实现主题切换效果 先给大家看一下主题切换的效果: 像这样的效果实现起来并不难,只是比较麻烦,目前我知道的有两种方式可以实现,分别是 CSS 变量、样式文件切换,下面是该效果的核心实现方法 CSS变量 给…

创建SpringBoot Helloword 程序详细步骤

本文档实现SpringBoot hello word 程序,翻译于Spring | Quickstart 目录 一、项目创建步骤1.1 创建项目1.2 添加代码1.3 运行 参考教程 一、项目创建步骤 1.1 创建项目 在官网Spring Initializr上创建项目 1.2 添加代码 在IDE中打开项目并在src/main/java/com/zo…

windows中打开psql命令行

一、第一种方式 1.点击下方的psql,打开命令行窗口 2.中括号中的是默认值,直接回车就行 3.成功 二、第二种方式 双击安装目录中的执行文件 “D:\soft\postgresql\catalogue\scripts\runpsql.bat” 三、第三种方式 1.加到环境变量 把“D:\soft\postg…

JAVA配置jdk17 Graa1VM

按照网上内容下载好对应的jdk17版本的Graa1VM, 解压后,修改环境变量中的JAVA_HOME为当前的目录,例如 D:\ruanjian\jdk\gra_jdk17\graalvm-ce-java17-22.3.0 。 然后在命令行中输入java -version的时候, 返回的并不是 Graa1VM 相关…