Odoo 模型之间的关系 笔记
Many2one 关系需要两个参数:关联模块(设置对应模块的关键参数)和展示字符。它会在数据库表中创建一个拥有外键的字段去关联数据库表。
这种类型的字段,也可以使用一些其它的参数:
ondelete 在关联的记录被删除时,将会触发。默认值是null,也就是说,当关联的记录被删除时,它将被置空。其它值为restrict,当记录被关联时,禁止删除,cascade,删除关联记录的同时删除当前记录。
context 是一个数据字典,在web客户端视图,通过关联关系访问时,会将上下文传过去。比如,设置默认值。它的详细的介绍,在第六章-视图-设计用户界面中。
domain 是一个由多个元组组成的列表的域表达式,用来删选关联字段中有效的记录。
auto_join=True 使用这个参数后,将允许ORM在数据查询是使用SQL的join(拼接,级联)功能。如果使用它,那么访问权限规则将被忽略,并且权限规则不允许访问的关联记录,用户也可以访问,因此这种情况下的SQL查询将会更快更高效。
Many2many 最少要提供一个参数,也就是关联的模块
One2many 按顺序接收3个参数:关联的模块,关联模块的字段名称,标题文本。(使用这个需要在 关联的模块 有相对应的Many2one字段)
可选的附加关键参数和Many2one相同:context,domain,ondelete(这个是作用在many端的)和auto_join。