2017-10-12 1 views
2

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되었다

+0

귀하의 * onchange() * 메소드에서 return 문을 보지 못했습니다. –

답변

1

그것은 그 사실

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 작동하지 않습니다 레코드 목록을 만들었지 만 모델의 어떤 필드에도 영향을주지 않았습니다.

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은 필드 트리에 나타나야하며 그렇지 않으면 웹 클라이언트는 저장 위치를 ​​알 수 없으므로 손실됩니다.

관련 문제