2017-10-20 188 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})] 
相關問題