| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> DRF-反序列化保存方法和更新方法 -> 正文阅读 |
|
[大数据]DRF-反序列化保存方法和更新方法 |
一、反序列化保存方法 在serializer序列化器中创建一个保存方法
然后在视图函数中的方法使用ser.save()方法,来调用序列化器中的create()方法 最后返回一个ser.data
可以通过在序列化器中的create()方法打断点,和视图中的save()中打断点,来验证它们之间互相调用的 二、更新方法 更新操作,需要在序列化器初始化的时候,传一个对象,也就是将要更新的对象 # 查询id的信息 try: book = BookInfo.objects.get(id=pk) except: return JsonResponse({'error': '错误信息'}, status=400) # 更新的时候需要传递一个对象,也就是将要更新的对象 ser = BookSerializer(book, data_dict) 然后继续还是验证操作 最后保存
在序列化器中,新建一个update方法,instance这个参数就是接收传递过来的对象,也就是查询出来的book对象,validated_data接收的是验证后的数据
可以看出保存的时候用的也是ser.save(),更新的时候还是这个ser.save()方法。到底什么时候调用的序列化器里的create(),什么时候调用的是update()方法。 可以点开save()源码看一下 ?这块有个一个判断,如果self.instance不是None的时候,调用update方法,为空的时候调用的create方法。 instance.save()? 这个save是模型对象的save方法 ser.save()这个save是序列化器的save方法, 它们是两个不同的类里的save方法,互不影响 总结: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 11:39:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |