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专业开发实施,原广州尚鹏
  • Odoo项目100%海内外成功交付
  • Odoo官网下载第一,服务上千企业
  • Odoo官网销量第一的中国公司
  • 钉钉、企业微信认证服务商
  • 微软中国ChatGPT服务商,Ai中心
  • 百度千帆、阿里通义千问服务商
  • 十年专注Odoo,服务智能制造
  • Odoo中文应用商店,海量模块 
odoo模型中many2one的 ondelete处理set null, restrict, cascade
欧度智能, 店小二
2018年1月4日
2024年3月22日
8,037
评论:
0
标签
存档
登录 留下评论
odoo V10中文开发参考手册:ORM API