百度就会看到一些对related的解读,但始终有些疑惑,今天终于弄懂了
related: 关联字段,表示本字段引用关联表中的某字段。格式为:fields.related(关系字段,引用字段,type, relation, string, ...),关系字段是本对象的某字段(通常是one2many or many2many),引用字段是通过关系字段关联的数据表的字段,type是引用字段的类型,如果type是many2one or many2many, relation指明关联表。例子如下:
'address': fields.one2many('res.partner.address', 'partner_id', 'Contacts'),
'city':fields.related('address','city',type='char', string='City'), 'country':fields.related('address','country_id',type='many2one', relation='res.country', string='Country'), 这里,city引用address的city字段,country引用address的country对象。在address的关联对象res.partner.address中,country_id是many2one类型的字段,所以type='many2one', relation='res.country'。解读:address 是一个one2many说明它是一个res.partner.address 对象,city就依赖address对象的city字段 ,去res.partner.address中查看city是char 类型,所以city type=‘char’
country 依赖address的country_id 字段,同样的方式,去res.partner.address中查看是many2one类型,对应'res.country',所以也是many2one