0

我在 Odoo 10 中使用以下代码创建了一个模块来继承product.product模型并覆盖现有standard_price字段定义以将其设置为计算字段:

class ProductProduct(models.Model):
    _inherit = 'product.product'

    standard_price = fields.Float(
        'Cost', company_dependent=True,
        digits=dp.get_precision('Product Price'),
        groups="base.group_user",
        compute='_compute_set_standard_price')

    def _compute_set_standard_price(self):
        .....
        # calculation for the value
        .....
        self.standard_price = 121 #this value is an example

standard_price设置为 121,因为我已将字段定义覆盖为计算字段,但该standard_price字段设置为 0 并且不触发计算方法。Odoo v8 中的这段代码运行良好。

在继承模型中覆盖现有字段定义的方法是什么?

4

1 回答 1

0

你没有使用装饰器api.depends

 @api.depends('field_1', 'field_2')
 def _compute_set_standard_price(self):
        .....
        # calculation for the value
        .....
        self.standard_price = 121 #this value is an example

当 odoo 创建记录或更新记录时,它将检查依赖于字典中传递的字段的计算字段,以根据新值重新计算计算字段。没有触发器 odoo 将不会计算该值

于 2017-04-13T07:05:07.337 回答