djangorestframework框架 保存数据的时候,自动新增了数据问题
背景:
1、最近写一个简单的后台管理页面;使用的是django3.x + djangorestframework;
2、需要把模型筛选出来的数据,修改部分字段后,再存储到数据库
问题:
1、将筛选出来的数据,全部存储到数据库的时候,发现都是新增了,而不是更新原来的数据;我明明传id了。
原因:
djangorestframework框架,在保存的时候,调用的是新增的方法。
djangorestframework框架,保存过程如下
1)手动调用serializer.isvalid()方法校验
2)调用serializer.save()保存;
***** 注意,重点来了:
在调用保存的时候,会判断当前的serializer有没有指定模型实例:
* 如果有,就调用更新方法(如果模型的实例中,包含多条记录,是不能更新的,暂时不支持。如果有多个记录的话,需要创建多个序列器,逐个更新数据)
* 如果没有,就调用新增方法
从上面可以看出来问题了吧,djangorestframework框架,根据模型来判断是新增还是更新,而不是看你传入的数据中,是否有id字段。
在更新的时候,目前只支持更新一个对象的数据;如果传入多个

浙公网安备 33010602011771号