2017-10-12 6 views
2

on odoo私はonchangeしようとしていました。条件は、 "SO00012"のようなデータを挿入した後、私のコードは挿入コードでデータを参照しようとします。ここに私のコードは次のとおりです。odoo onchangeデータを取得しない

def onchange_data(self, cr, uid, vals, ids, context=None): 

    stocks_picking_onchange = self.browse(cr, uid) 
    products = [] 

    stiks = self.browse(cr, uid, ids) 
    objk = self.pool.get('purchase.order') 
    objeck = self.pool.get('data.stock.picking') 
    objecks = objk.search(cr, uid,[('name','=',stiks.origin)]) 
    datas = objk.browse(cr, uid, objecks) 

    if datas: 
     for data in datas: 
      for line in data.order_line: 
       products.append((0, 0, { 
        'data1': line.id, 
        'data2' : line.product_qty, 
        'data3' : line.bonus, 
       })) 

しかし、私は、データを取得することはなかった、私の友人は、メソッドを追加するために私をsuggesのように作成します。

def onchange_data(self, cr, uid, vals, ids, context=None): 
    res = super(stock_picking, self).create(cr, uid, vals, context=context) 
    stocks_picking_onchange = self.browse(cr, uid) 
    products = [] 

しかし、STILそれは事実だ

+0

あなたの* onchange()*メソッドでreturn文が見つかりませんでした。 –

答えて

1

を働いていませんレコードのリストを作成しましたが、モデルのどのフィールドにも影響しませんでした。

if datas: 
     products.append((5,0,false)) # if you want to remove all old records 
     # i think without this line you will add the new record to the old list 
     for data in datas: 
      for line in data.order_line: 
       products.append((0, 0, { 
        'data1': line.id, 
        'data2' : line.product_qty, 
        'data3' : line.bonus, 
       })) 
# return your value 
return {'values' : {'your_field_name_here': products}} 

onchange data1、data2、およびdata3がフィールドのツリーに表示されている必要があります。そうでない場合、Webクライアントはそれらを保存する場所を知らず、失われます。

関連する問題