2017-10-20 3 views
1

たとえば、私はそこにいくつかの行を持つDICTデータを持っています。私は他のモデルのレコード行を更新したい、私はこのコードを使用します。他のモデルのレコードにはいくつかの行があり、DATASから新しい行を追加したい。私のコードは既にそこにある行を上書きします。上書きしないで、既存の行にどのように追加できますか?上書きせずに行を追加する

あなたはどの x2manyフィールド上 writeを実行しているとき、あなたは「これはそのフィールドにあるべき唯一のものです。何かを消去します。」と言っている
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

追加の行を追加する場合は、the method described hereを使用してフィールドを入力する必要があります。

shoes.service_ids = [(4, {ID of record to link})] 
関連する問題