odoo开发笔记 -- 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
注意:
related使用时候,需要在相应的py文件字段上加readonly属性
待完善。