Openerp 从web服务创建sale.order.line(导入)?奥多V9e

Openerp 从web服务创建sale.order.line(导入)?奥多V9e,openerp,odoo-8,Openerp,Odoo 8,如果memo_数据['items']中只有一个产品,则会创建销售订单行,但如果有两个或更多产品,则会重新融合,并出现错误:值太多,无法解包。 代码如下: for item in memo_data['items']: c_id = self.env['sale.order.line'].search([('creditmemo_id','=',memo_data['creditmemo_id'])]) if not

如果memo_数据['items']中只有一个产品,则会创建销售订单行,但如果有两个或更多产品,则会重新融合,并出现错误:值太多,无法解包。 代码如下:

for item in memo_data['items']:
                    c_id = self.env['sale.order.line'].search([('creditmemo_id','=',memo_data['creditmemo_id'])])
                    if not c_id:
                        _logger.info("THIS IS CID: %s" % memo_data['creditmemo_id'])
                        a_product = self.env['product.product'].search([('default_code', '=',item['sku'])])
                        if a_product:
                            _logger.info("FOUND THE PRODUCT with id: %s" %a_product.id)
                            pos_price = float(item['row_total'])

                            neg_price = pos_price - (2 * pos_price)

                            res12 = {


                                'order_id':         is_exist.id,

                                'product_id':       a_product.id,

                                'price_unit':       neg_price,
                                'sequence':         10,


                                'product_uom_qty':   float(item['qty']),

                                'creditmemo_id' :   memo_data['creditmemo_id'],

                                'creditmemo_date':  memo_data['created_at'],

                                'creditmemo_increment_id' : memo_data['increment_id'],



                            }


                            self.env['sale.order.line'].create(res12)`enter code here`

我想您正在尝试循环记录列表。但内部循环尝试将备忘录数据更改为项目:

for item in memo_data['items']:
                    c_id = self.env['sale.order.line'].search([('creditmemo_id','=',item['creditmemo_id'])])
                    if not c_id:
                        _logger.info("THIS IS CID: %s" % item['creditmemo_id'])
                        a_product = self.env['product.product'].search([('default_code', '=',item['sku'])])
                        if a_product:
                            _logger.info("FOUND THE PRODUCT with id: %s" %a_product.id)
                            pos_price = float(item['row_total'])

                            neg_price = pos_price - (2 * pos_price)

                            res12 = {


                                'order_id':         is_exist.id,

                                'product_id':       a_product.id,

                                'price_unit':       neg_price,
                                'sequence':         10,


                                'product_uom_qty':   float(item['qty']),

                                'creditmemo_id' :   item['creditmemo_id'],

                                'creditmemo_date':  item['created_at'],

                                'creditmemo_increment_id' : item['increment_id'],



                            }

我想你需要像这样处理你的口述

for field, possible_values in fields.iteritems():
    print field, possible_values
python 2.7:iteritems() python 3:items()


感谢发布错误日志以便更好地理解。不,我需要备忘录数据['creditmemo\u id'],因为它是主要信息的载体,备忘录数据['items']中的项目是需要插入的实际信用备忘录行。顺便说一句,我用这个代码导入了2300份备忘录,2320份中只有20份被拒绝,错误是:请发布备忘录数据样本