如果在Odoo 8中修改字段,如何执行特定功能?

时间:2016-04-18 10:35:28

标签: triggers openerp odoo-8

我正在使用product.product对象。它有一个名为qty_available的字段,表示库存产品的可用数量,如其名称所示。

通常,我会在我想要执行的方法中添加一个@api.depends('qty_available')装饰器。但我认为除非我创建一个调用它的计算字段,否则不会执行此方法。问题是可以从许多不同的视图中修改字段qty_available,并且修改每个视图以添加计算字段会非常不舒服。

有没有办法正确地做到这一点?

1 个答案:

答案 0 :(得分:2)

如果在编写和不创建时需要这样做,可以重新定义写入功能并检查该字段是否正在写入。

@api.multi
def write(self, values):

    if values.get('qty_available'):

        #Your function here

    return super(ResPartner, self).write(values)

由于值包含一个字段,其中包含要更改的字段,因此只有在qty_available发生更改时才会运行。如果qty_available是一个函数字段,请注意这不起作用。在这种情况下,您应该覆盖该功能。