odoo ORM中的many2one类型字段有 ondelete设置,对应数据表中关系处理
ondelete | 设置当引用的record被删除是,如果对本record进行的行为,可填:set null , restrict , cascade |
如
model modelA a = fields.Many2one('b', string='b', ondelete='set null')
则当对模型b进行delete操作时,会引发如下操作
set null: 当b中删除记录时,modelA中相关记录的a=null。 这种模式是odoo内默认模式,不同类型单据间,没有强上下游关系时,多数用这种。
restrict: 当b中删除记录时,如果modelA中存在对应记录,则无法操作 b 的删除。 主要用于数据完整性相关,即上下游单据,不允许随便删除的情况。
cascade: 当b中删除记录时,modelA中相关记录也全部删除,多数用于处理 单头主记录删除,其明细也删除。
默认是: set null