首页 > 其他分享 >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_n

时间:2023-01-20 21:33:51浏览次数:39  
标签:prevent loss self object update item no save unit

问题描述:

  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}
)

标签:prevent,loss,self,object,update,item,no,save,unit
From: https://www.cnblogs.com/beichengshiqiao/p/17063263.html

相关文章