2017-10-20 109 views
1

例如,我有DICT数据,其中有一些行。我想更新其他模型中的记录线,并使用此代码。其他模型记录有一些行init,我想从DATAS添加新行。我的代码只是覆盖已经存在的行。我如何添加到现有的行,而不是覆盖?添加行而不覆盖现有的

datas = safe_eval(self.datas) 
domain = [('quatation_id', '=', self.id)] 
shoes = self.env['shoes.order'].search(domain, limit=1) 
for line in datas['lines']: 
        line = line and line[2] 
        vals = { 
         u'product_id': line.get('product_id'), 
         u'amount_total': line.get('price'), 

        } 

       shoes.service_ids.write(vals) 



class ShoesOrderService(models.Model): 
    _name = 'shoes.order.service' 
    _rec_name = 'product_id' 

    product_id = fields.Many2one(
     'product.product', 'Service', 
     domain=[('type', '=', 'service')], 
    ) 
    price = fields.Float() 
    order_id = fields.Many2one(
     'shoes.order', 'Shoes Order') 

class ShoesOrder(models.Model): 

_name = 'shoes.order' 

service_ids = fields.One2many(
    'shoes.order.service', 'order_id', string='Additional Services', 
    copy=True 
+0

您还可以提供'service_ids'字段的定义吗? – tidylobster

+0

已更新原帖 – Chaban33

+0

不过,我在询问'service_ids = fields。?' – tidylobster

回答

2

当你在任何领域x2many运行write,你说“这是应该在这一领域的唯一的事情。擦除任何东西。”

您想添加额外的行,因此您必须使用the method described here来填写该字段。

shoes.service_ids = [(4, {ID of record to link})] 
相关问题