TypeError:res.partner(id,)不是JSON可序列化的

时间:2016-03-23 12:05:49

标签: python openerp odoo-9

我在sale.order.line模型上有一个按钮,可以在stock.picking模型上打开一个弹出窗口。弹出窗口打开完美,但当我想花一些字段默认弹出时,Odoo显示以下消息:

TypeError:res.partner(id,)不是JSON可序列化的

在下面的图片中显示了弹出窗口:

enter image description here

enter image description here

这是打开弹出窗口的功能:

    @api.multi
    def action_stock_picking(self):        
        self.ensure_one()
        picking_form = self.env.ref('stock.view_picking_form', False)
            return {
                'name': _('Formulario de Inventario: Recepciones'),
                'type': 'ir.actions.act_window',
                'view_type': 'form',
                'view_mode': 'form',
                'res_model': 'stock.picking',
                'views': [(picking_form.id, 'form')],
                'view_id': picking_form.id,
                'target': 'new',
                'context': dict(
          #partner_id stock.picking = partner_id sale.order.line

                    **default_partner_id=self.order_id.partner_id,**

                    default_origin=self.order_id.name,
                    default_picking_type_id = 1,
                    default_model='stock.picking',
                    default_res_id=self.id,
                    default_composition_mode='comment',
                    mark_invoice_as_sent=True,
                ),
            }

当我想花费客户端弹出窗口时,Odoo会显示我之前提到的错误。

非常感谢大家。我希望你能得到一些帮助。

1 个答案:

答案 0 :(得分:0)

您必须设置default_partner_id,例如 default_partner_id = self.order_id.partner_id.id,,而不是 default_partner_id = self.order_id.partner_id,,以便在选择时设置默认合作伙伴。请使用以下代码。

@api.multi
def action_stock_picking(self):        
    self.ensure_one()
    picking_form = self.env.ref('stock.view_picking_form', False)
        return {
            'name': _('Formulario de Inventario: Recepciones'),
            'type': 'ir.actions.act_window',
            'view_type': 'form',
            'view_mode': 'form',
            'res_model': 'stock.picking',
            'views': [(picking_form.id, 'form')],
            'view_id': picking_form.id,
            'target': 'new',
            'context': dict(
      #partner_id stock.picking = partner_id sale.order.line

                default_partner_id=self.order_id.partner_id.id,

                default_origin=self.order_id.name,
                default_picking_type_id = 1,
                default_model='stock.picking',
                default_res_id=self.id,
                default_composition_mode='comment',
                mark_invoice_as_sent=True,
            ),
        }