在Odoo 10中,我希望在预测的产品数量发生变化时更改变量的值。我尝试使用@ api.onchange装饰器,但它不起作用。预测的数量会发生变化,但变量保持相同的值。我有这个:
class MyProduct(models.Model):
_inherit = 'product.product'
was_changed = fields.Boolean(default = False)
@api.onchange('virtual_available')
def qtychanged(self):
self.was_changed = True
_logger.info('Product_Qty_Cahnged: %s',str(self.virtual_available))
在此代码中,如果产品的预测数量发生变化,则应将变量was_changed设置为True,但不会发生任何变化。
之后,我尝试覆盖自定义类的write方法,如下所示:
class MyProduct(models.Model):
_inherit = 'product.product'
was_changed = fields.Boolean(default=False)
@api.multi
def write(self, values):
if values['virtual_available']:
values['was_changed'] = True
# THE FOLLOWING LINES WERE IN THE ORIGINAL WRITE METHOD
res = super(MyProduct, self).write(values)
if 'standard_price' in values:
self._set_standard_price(values['standard_price'])
return res
但是,我仍然有同样的结果。我似乎无法改变这面旗帜。那么,有什么想法吗?
答案 0 :(得分:0)
试试这个:
class MyProduct(models.Model):
_inherit = 'product.product'
was_changed = fields.Boolean(default = False)
@api.onchange('virtual_available')
def qtychanged(self):
self.write({'was_changed': True})
_logger.info('Product_Qty_Cahnged: %s',str(self.virtual_available))