首页 > 解决方案 > 如何在odoo v11中继承stock.move.line的_action_done()方法

问题描述

在 odoo v11 的stock.move.line模型中,有一个名为_action_done()的方法。我想发送一些带有批次信息的值。为此,我需要使用该方法并编写以下内容:

第一个样本:

def _action_done(self):
    res = super(StockMoveLineExt, self)._action_done()
    for ml in self:
        if ml.lot_id and ml.date_expire:
            ml.lot_id.text_field = ml.text_field
    return res

第二个样本:

def _action_done(self):
    for ml in self:
        if ml.lot_id and ml.date_expire:
            ml.lot_id.text_field = ml.text_field
    res = super(StockMoveLineExt, self)._action_done()
    return True

现在我打算做的目的是通过第一个样本来完成。但它在stock.move中产生了严重的问题。就像-如果我进行 POS 订单/销售,那么订单拣货仍处于等待状态。但它应该去完成库存。对于内部转移, stock.move.line上有额外的行,这会创建重复的行,需要手动删除。

现在,我通过添加自己需要的代码来覆盖该方法。但我不想要这个。我究竟做错了什么?如何覆盖此方法?

标签: pythonodoo-11

解决方案


推荐阅读