有人能告诉我如何使用上下文在创建函数中的两个模型(sale.order和stock.picking)之间传递数据吗?
类stock_backdoor(models.Model):
_inherit = 'stock.picking'
technician_id = fields.Many2one('hr.employee',string='Technician')
driver_id = fields.Many2one('hr.employee',string='Driver')
@api.model
def create(self,vals):
#here where i want to use the context to get the technichian
#and the driver id from (sale.order)
return super(stock_backdoor, self).create(vals)类sale_backdoor(models.Model):
_inherit = 'sale.order'
technician_id = fields.Many2one(
'hr.employee',string='Technician',required=True)
driver_id = fields.Many2one(
'hr.employee',string='Driver',required=True)发布于 2019-08-21 12:33:18
您可以在超级调用中传递下面的上下文;
super(sale_backdoor, self.with_context(driver_id=vals.get('driver_id',False),technician_id=vals.get('technician_id',False)).create(vals)请将上下文设置在销售订单模型中,并在选股模式中接收,如下所示:
driver_id = self._context.get('driver_id',False)
technician_id = self._context.get('technician_id',False)请告知,从您的问题,它是肯定的,您希望通过驱动器和技术员字段价值从销售订单到库存,而创建库存从销售订单。请使用以下函数代码进行相同操作:
用股票移动模型编写以下代码
class StockMove(models.Model):
_inherit = "stock.move"
def _get_new_picking_values(self):
res = super(StockMove,self)._get_new_picking_values()
res.update({'driver_id': self.sale_line_id and self.sale_line_id.order_id and self.sale_line_id.order_id.driver_id and self.sale_line_id.order_id.driver_id.id,
'technician_id': self.sale_line_id and self.sale_line_id.order_id and self.sale_line_id.order_id.technician_id and self.sale_line_id.order_id.technician_id.id,})
return res发布于 2019-08-21 11:55:46
将self = self.with_context(driver_id=self.driver_id.id)放在超级调用之前
https://stackoverflow.com/questions/57587623
复制相似问题