save() prohibited to prevent data loss due to unsaved related object 'item_n

问题描述:

  save() prohibited to prevent data loss due to unsaved related object 'item_no

原因分析:

  原来的目的是保存数据时同步另一个表,不存在新增,存在更新,但是当不存在新增时,关联外键item_no的信息还没有保存,就开始编辑关联表,导致数据丢失。 

解决办法:

  等主表的数据保存成功后再去同步编辑关联表,所以我们需要将super().save()的保存命令放到字表update_or_create之前。

def save(self, force_insert=False, force_update=False, using=None,
update_fields=None):
super().save()
IM003D1Model.objects.update_or_create(item_code=self.item_no + '-' + self.item_unit.code,
unit_ratio=1,
su_price=0,
cu_price=0,
cu_price_vip=0,
defaults={'item_no': self,
'item_unit': self.item_unit}
)
posted @   侬侬发  阅读(175)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示