解读odoo 自带hr模块
model hr.py中
class Employ 中有个方法如下
resource_id = fields.Many2one('resource.resource', string='Resource',
ondelete='cascade', required=True, auto_join=True)
@api.multi
def unlink(self):
resources = self.mapped('resource_id')
super(Employee, self).unlink()
return resources.unlink()
上面代码可以改写成下面的两种形式,三种形式对比如下:
mapped()函数
使用提供的函数对记录集的每个记录进行计算,如果结果是记录集,则返回这个记录集
因字段resource_id有属性ondelete=‘cascade’ – 级联删除
当对resource_id进行unlink()时,会递归删除造成内存不足–上图中间的写法
最后一种写法
result是把employee删除的结果返回