odoo 的参考字段 Reference(Not related) 字段
在 odoo 中,如果我们能确定模型之间的关系,我们可用 related 来关联目标模型的数据。如果我们不知道或者说事先不能决定目标模型时,如何能动态的关联目标模型呢?这种情况你需要 reference。使用 Referce 字段,我们将目标模型的选择权留给用户。
首先我们设想一个业务场景: 假定我们有一个通用的报废模块,报废可能是销售出库报废、采购入库报废、生产领料报废等,我们需要跟踪报废的来源,以便实现质量跟踪或者成本核算等业务逻辑。那么在 odoo中怎么实现呢?
首先我们要定义一个方法,这个方法返回一个对象列表,用户可以从中选择报废动作的关联对象
class ScrappedModel(models.Model):
#...
@ api.model
def _referencable_models(self):
models = self.env ['res.request.link'].search([])#返回一个模型列表
然后,我们添加参考字段并使用上一个函数提供可选模型的列表:
doc_source = fields.Reference(selection ='_ referencable_models',string ='Reference Document')
然后在视图中把该字段的widget设置为 reference:
重启 odoo 升级模块,就可以实现对象的动态关联了。
相关标签 TAG : 字段