Openerp 返回一个2任意值,但产品在odoo 9中显示不同

Openerp 返回一个2任意值,但产品在odoo 9中显示不同,openerp,odoo-8,odoo-9,Openerp,Odoo 8,Odoo 9,我正在尝试根据订单请求创建报价,在选择订单请求编号时,这些请求的产品必须附加在报价的订单行中 我尝试了以下代码,它运行正常,返回了正确的产品id。但是当显示在one2many字段中时,产品不同,我在返回前提供了打印选项,它显示了正确的产品 def request_change(self, req_id): print req_id vals=[] refunds = self.env['purchase.request.products'].sea

我正在尝试根据订单请求创建报价,在选择订单请求编号时,这些请求的产品必须附加在报价的订单行中

我尝试了以下代码,它运行正常,返回了正确的产品id。但是当显示在
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 }}

One2many write的正确格式:

(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 }}
详情