我有一个类型为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")
我将其更改为此:
public static void ExecuetAsyncIfPosible(Action workerAction)
{
ThreadPool.GetAvailableThreads(out int worker, out _);
if (worker > 0)
ThreadPool.QueueUserWorkItem((status) => workerAction());
workerAction();
}
完整性错误为:
操作可能无法完成,可能是由于以下原因: -删除:您可能正在尝试删除一条记录,而其他记录仍引用该记录 -创建/更新:未正确设置必填字段
[引用对象:bed_id-bed.id]
如何解决此问题而不删除数据库中的现有记录?
答案 0 :(得分:2)
我将新的(many2many)字段的名称更改为bed_ids
。
首先,这是出于Odoo准则的考虑,其次,我认为Odoo不能将字段从many2one迁移到many2many,因为在数据库方面,这是一个完整的其他关系。 many2one字段只是其他表的外键,但many2many字段是通过关联表实现的。
这就是为什么我会让旧的字段存在,以便您可以自己迁移它的原因。迁移后,您应该删除字段或让Odoo通过在代码中删除字段来删除字段。