2016-11-23 159 views
0

我用下面的代碼創建了一個模塊中Odoo 10繼承product.product模型,並覆蓋現有standard_price字段定義將其設置爲一個計算領域:繼承模型不覆蓋字段定義在Odoo 10

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中的這段代碼工作正常。

覆蓋繼承模型中現有字段的定義的方式是什麼?

回答

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將不會計算出值