2016-12-22 14 views
1

Я пытаюсь создать котировку на основе запроса заказа. При выборе номера запроса заказа эти запрошенные продукты должны добавлять строки заказа.Возвратите one2many значения, но продукт показывает разные в odoo 9

Я пробовал использовать следующий код, он вернул правильный идентификатор продукта. но при отображении в поле one2many продукт отличается, я дал опцию печати перед возвратом, он показывает правильный продукт.

def request_change(self, req_id): 
     print req_id 
     vals=[] 
     refunds = self.env['purchase.request.products'].search([('request_id', '=', req_id)]) 
     for recs in refunds: 
      print recs.name.name 
      print recs.name.id 
      vals.append({'product_id':recs.id,'name':recs.name.name,'product_qty':1.000,'date_planned':datetime.now().strftime("%Y-%m-%d %H:%M:%S"),'price_unit':recs.name.list_price}) 
     print vals 
     return {'value': {'order_line':vals }} 

ответ

1

Правильный формат One2many записи:

(0,0, {}) or (0, False, {}) 

Например:

'order_line': [(0,0, {'product_id': 1, 'name': 'Test1'}).....] 

Попробовать следующий код.

def request_change(self, req_id): 
    print req_id 
    vals=[] 
    refunds = self.env['purchase.request.products'].search([('request_id', '=', req_id)]) 
    for recs in refunds: 
     vals.append([0,0, {'product_id':recs.id,'name':recs.name.name,'product_qty':1.000,'date_planned':datetime.now().strftime("%Y-%m-%d %H:%M:%S"),'price_unit':recs.name.list_price}]) 
    return {'value': {'order_line':vals }} 

Для получения дополнительной информации other datatype field add/update/delete

+0

спасибо .. Это хорошо работает. – Mani