添加或删除行时,更新所有One2many行中的字段

时间:2018-05-08 22:44:35

标签: odoo odoo-10

我想计算一个包含多件商品的商品的运费。该包装盒具有固定的运费,每件商品的费用是通过将运费除以商品数量计算得出的。

在用户界面中,我希望在添加或移除商品(添加或删除一行)时更新每行显示的费用。

我希望在保存表单之前添加新行时更新该行的成本字段。但是,该值未更新,onchange调用返回一个空值(这是我在fiddler中看到的)。

{"jsonrpc": "2.0", "id": 844836927, "result": {"value": {}}}

此代码段是包含相关代码的较大类的一部分:

class Shipping(models.Model):    
    _name = 'shipping.shipping'
    shipping_cost = fields.Float(string='Shipping cost')
    shipping_line_ids = fields.One2many('shipping.line', 'shipping_id', string='Shipping items')

    @api.onchange('shipping_line_ids')
    def onchange_shipping_line_ids(self):    
        number_of_items = len(self.shipping_line_ids)
        if number_of_items == 0:        
            return    
        line_cost = self.shipping_cost / number_of_items    
        for line in self.shipping_line_ids:        
            line.cost = line_cost

class ShippingLine(models.Model):    
    _name = 'shipping.line'    
    shipping_id = fields.Many2one('shipping.shipping', string='Shipping') 
    cost = fields.Float(string='Cost')

我在这里做错了什么?

0 个答案:

没有答案