跳至内容

odoo模型中many2one的 ondelete处理set null, restrict, cascade

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

 

 欧度智能: Odoo成功100%
Odoo专业开发实施,原广州尚鹏
  • 11年深耕Odoo,源码交付可控无锁
  • 敏捷交付,专攻全球化复杂定制项目
  • Bug极速响应,上线升级全程陪跑
  • 立足大湾区,多语言多币种覆盖亚美欧
  • Odoo官方市场百万下载核心贡献者
  • 钉钉、企业微信认证服务商
  • 服务1000+企业,多家上市公司
  • Odoo中文应用商店,海量模块 
odoo模型中many2one的 ondelete处理set null, restrict, cascade
广州欧度智能科技有限公司, ai店小二
2018/1/4
2026/3/27
11,170
评论:
0
标签
归档
odoo V10中文开发参考手册:ORM API