restframework的 createmixin 的 serializer.save() 问题
我们在重写createmixin之后,有的数据不是直接从前端传过来然后存入数据库的,而是经过后期处理之后再存入数据库的字段,如下所示:
request.data['xxx'] = xxx
这部分字段调用如下函数
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
serializer.save()
后不会存入数据库,因此需要特殊处理一下:
办法如下:
获取serializer时,添加context
serializer = self.get_serializer(data=request.data, context={'request': request})
之后进入serializer中,为对应的serializer添加新数据:
class xxx(serializers.ModelSerializer):def create(self, validated_data):validated_data['xxx'] = self.context['request'].data['xxx']return super().create(validated_data)class Meta:model = models.xxxfields = "__all__"
参考:
https://www.cnblogs.com/anthony-wang0228/articles/11253105.html
restframework的 createmixin 的 serializer.save() 问题相关推荐
- Django restframework实现批量操作
这篇文章主要介绍两种方式实现批量操作, 一种是使用 Django restframework提供的装饰器action,可以更具实际情况扩展默认的增删改查操作,扩展性很好:另外一种是使用第三方模块 dj ...
- Serializer反序列化使用之验证和保存
1. 验证 使用序列化器进行反序列化时,需要对数据进行验证后,才能获取验证成功的数据或保存成模型类对象. 在获取反序列化的数据前,必须调用is_valid()方法进行验证,验证成功返回True,否则返 ...
- 聊聊restful和restframework
来聊聊这个RESTful 最近这段时间在看面试信息,很多公司的岗位要求中都有这个"掌握restful框架".但是在我的认知里,restful好像是一种标准或者是风格啊,并不是某个具 ...
- django批量修改table_django restframework 多对多的批量修改,基于逻辑删
模型: class LogisticQuerySet(QuerySet): def delete(self): self.update(is_delete=True) class BookManage ...
- DRF--序列化器类中的to_internal_value,to_representation方法,save,create,update方法
1.to_internal_value方法 def to_internal_value(self, data): 1.1 to_internal_value方法,是所有字段开始校验时的入口方法,最先调 ...
- 5- vue django restful framework 打造生鲜超市 -完成商品列表页(上)
使用Python3.6与Django2.0.2(Django-rest-framework)以及前端vue开发的前后端分离的商城网站 项目支持支付宝支付(暂不支持微信支付),支持手机短信验证码注册, ...
- MySQL审核神器Inception
直接上效果图 提交之后可以看到 点击SQL详情 点击处理详情记录了inception审核的内容,然后可以点击手动,执行,打回功能,回滚暂时没写 结果如上都已经很清楚了,那么下面我们看实现过程,因为这是 ...
- DRF框架知识点总结
web开发的两种模式:前后端不分离和前后端分离 RestFul API接口设计风格:前后端分离被广泛采用 使用Django基础自定义Rest API接口 DRF框架: 提高开发Rest API接口的效 ...
- RESTful之视图概览和视图说明
一.视图概览 REST framework 提供了众多的通用视图基类与扩展类,以简化视图的编写. 视图的继承关系: 视图的方法与属性: 二.视图说明 1. 两个基类 1)APIView rest_fr ...
最新文章
- java原子变量的作用_AtomicInteger原子类的作用介绍(代码示例)
- 成熟的AI应该自己写代码,IBM发布5亿行代码数据集,包含55种语言|开源
- android 组件(activity,service,content provider,broadcast receiver,intent)详解
- Bootstrap 3之美02-Grid简介和应用
- java vo转map_Jython:在 Java 程序里运行 Python 代码 4.5
- glide 压缩图拍呢_用Glide-图片的压缩-图片压缩原理
- 作为一个上市公司HR,跟大家分享一些面试的真相
- 简述流水线基本工作原理 计算机,自动化专业计算机技术基础作业题(50题)
- Linux 超全实用指令大全 | CSDN 博文精选
- 关于数据库查询时报“query block has incorrect number of result columns”
- 软件质量保证与测试(什么是图灵测试)
- blend 自定义控件
- python播放mp3文件 playsound_播放声音文件 函数playsound()
- java 只保留字母_Java所有保留字与关键字
- “请珍惜”震撼心灵的感动;当我们老了,还能一起真三么?
- 操作系统--磁盘存储器篇
- STM32物联网项目-单极性步进电机28BYJ-48
- 微信小程序--引用第三方组件
- 【秃头系列】-【本科生毕设论文格式Word】小修改和小问题
- Java创建RPG游戏角色