问题描述
我正在使用 odoo 13。我在采购订单行中有一个自定义字段权重。 我想将此字段的值复制到库存移动中的自定义字段。 我知道要将字段的值从销售订单转移到库存移动,我可以通过以下方式进行。
class StockMoveLine(models.Model):
_inherit = 'stock.move'
weight = fields.Float(
compute='_compute_weight' )
def _compute_weight(self):
for move in self:
if not (move.picking_id and move.picking_id.group_id):
continue
picking = move.picking_id
sale_order = self.env['sale.order'].sudo().search([
('procurement_group_id','=',picking.group_id.id)],limit=1)
# print(picking)
if sale_order:
for line in sale_order.order_line:
if line.product_id.id != move.product_id.id:
continue
move.update({
'weight': line.weight,})
continue
else:
# move.update({
# 'weight': move.weight,# })
然而,我发现自己陷入了从购买到库存移动的领域
解决方法
您可以使用 purchase_line_id
上的 stock.move
字段,它是指向 purchase.order.line
代码 - PoL Reference in Stock Move
,如果您继承了stock.move,请将您的模型名称更改为 class StockMove(models.Model):
而不是 class StockMoveLine(models.Model):
。
尝试在您的计算函数上使用 @api.depends。