如何在odoo 10

时间:2017-01-26 10:12:34

标签: odoo-10

以下方法存在于

查询1: 的 stock.move

@api.multi
def action_assign(self, no_prepare=False):
     for move in moves:
        if move.product_id.type == 'consu'
            moves_to_assign |= move
            continue
        else:
            moves_to_do |= move

我只想添加一行更改 (即)

@api.multi
def action_assign(self, no_prepare=False):
     for move in moves:
        if move.product_id.type == 'consu' or move.product_id.type == 'service':
            moves_to_assign |= move
            continue
        else:
            moves_to_do |= move

我只想自定义此行

  **if move.product_id.type == 'consu' or move.product_id.type == 'service':**

还有 查询2: ' mrp.production' 在这个方法

def _generate_raw_move(self, bom_line, line_data):

我只想删除以下内容

if bom_line.product_id.type not in ['product', 'consu']:
        #return self.env['stock.move']

如何在Odoo 10中的自定义模块中编写此方法。

1 个答案:

答案 0 :(得分:1)

在您的插件中,您希望从此插件stock.move继承。然后只需使用现有方法并将其粘贴到您自己的模型中。这将完全覆盖现有方法。因此,当调用该方法时,它只会调用您的方法而不是以前存在的方法。

这是完成您要做的事情的唯一方法。你不能告诉程序'我只想改变这两行'。当涉及到方法时,它并没有真正起作用。

如果您希望保持现有方法不变,可以致电super并在致电super之前或之后执行处理,有时这比完全覆盖现有方法更好。在我看来,这实际上取决于你的情况。

class ClassName(models.Model):
    _inherit = 'stock.move'

    @api.multi
    def action_assign(self, no_prepare=False):
        for move in moves:
            if move.product_id.type == 'consu' or move.product_id.type == 'service':
                moves_to_assign |= move
                continue
            else:
                moves_to_do |= move