我有一个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删除字段,方法是在代码中将其删除。