Triggers 如果在Odoo 8中修改了字段,如何执行特定函数?

Triggers 如果在Odoo 8中修改了字段,如何执行特定函数?,triggers,openerp,odoo-8,Triggers,Openerp,Odoo 8,我正在使用product.product对象。它有一个名为quantity\u available的字段,如其名称所示,该字段指示库存产品的可用数量 通常,我会向我想要执行的方法添加一个@api.depends('quaty\u available')装饰器。但我认为,除非创建一个调用该方法的计算字段,否则不会执行该方法。问题是可以从许多不同的视图中修改字段qty\u available,修改每个视图以添加计算字段会让人非常不舒服 有什么方法可以正确地执行此操作吗?如果在写入和不创建时需要执行此

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

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


有什么方法可以正确地执行此操作吗?

如果在写入和不创建时需要执行此操作,可以重新定义写入函数并检查该字段是否正在写入

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

    if values.get('qty_available'):

        #Your function here

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

因为值包含一个包含正在更改的字段的字典,所以只有当可用数量发生更改时,它才会运行。注意,如果可用数量是一个功能字段,则这将不起作用。在这种情况下,您应该覆盖该函数。

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

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

    if values.get('qty_available'):

        #Your function here

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

因为值包含一个包含正在更改的字段的字典,所以只有当可用数量发生更改时,它才会运行。注意,如果可用数量是一个功能字段,则这将不起作用。在这种情况下,您应该覆盖该函数。

我在寻找复杂的方法,但没有考虑简单的ORM覆盖,这是最好的解决方法。谢谢我在寻找复杂的方法,我没有考虑简单的ORM覆盖,这是最好的解决方法。谢谢