文章目录
- 相关属性和方法
- company 相关属性
- company 相关方法
- 总结
相关属性和方法
company 相关属性
字段中属性定义check_company=True
为模型添加 company_id 字段
company_id=fields.Many2one('res.company',string='Company',default=lambdaself:self.env.company)模型属性定义check_company_auto=True
默认开启全局自动检查
company 相关方法
res.users中定义_check_company()models.py中定义_check_company()
模型方法中调用_check_company()
总结
`_check_company_auto = True 自动检查的原理
- 扫描模型中所有关联字段(Many2one, Many2many, One2many)
- 检查这些关联字段的目标模型是否有company_id字段
| 特性 | 只设置 _check_company_auto=True | 在字段中添加 check_company=True |
|---|---|---|
| 公司检查 | ✅ 自动为所有关联字段检查 | ✅ 只对标记的字段检查 |
| 配置工作量 | 一次设置,自动应用 | 每个字段都要单独设置 |
| 灵活性 | 自动检测,可能包含不需要的检查 | 精确控制哪些字段需要检查 |
| 性能 | 可能略低(检查所有关联字段) | 更高效(只检查指定字段) |
| 典型使用场景 | 简单模型,所有关联都需公司隔离 | 复杂模型,部分关联允许跨公司 |
| 是否需要重写_check_company() | ❌ 一般不需要 | ❌ 一般不需要 |