我有一个many2one类型的字段。同样在我的数据库中,我有很多记录。

因此,现在我想将此字段的类型从many2one更改为many2many,但是当我创建记录时,它会向我显示Integrity Error

这是我的领域:

bed_id = fields.Many2one('i.bed', 'bed', required=True, ondelete="restrict",  track_visibility="onchange")


我将其更改为:

bed_id = fields.Many2many('i.bed', 'bed', required=True,string="beds",  track_visibility="onchange")


完整性错误为:


  由于以下原因,无法完成该操作:
  -删除:您可能正在尝试删除一条记录,而其他记录仍引用该记录
  -创建/更新:必填字段未正确设置
  
  [引用对象:bed_id-bed.id]


如何解决此问题而不删除数据库中的现有记录?

最佳答案

我将新(many2many)字段的名称更改为bed_ids

首先,这是出于Odoo准则的考虑;其次,我认为Odoo不能将字段从many2one迁移到many2many,因为在数据库方面,这是一个完整的其他关系。 many2one字段只是其他表的外键,但是many2many字段是通过关联表实现的。

这就是为什么我会让旧字段存在,以便您可以自己迁移它的原因。迁移后,您应该删除字段或让Odoo删除字段,方法是在代码中将其删除。

10-04 21:46