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 @ 2023-01-20 21:18  侬侬发  阅读(142)  评论(0编辑  收藏  举报