перезаписать запись на один раз odoo версии 10 python

метод, который я хочу пропустить

@api.multi
def write(self, vals):
    if 'uom_id' in vals:
        new_uom = self.env['product.uom'].browse(vals['uom_id'])
        updated = self.filtered(lambda template: template.uom_id != new_uom)
        done_moves = self.env['stock.move'].search([('product_id', 'in', updated.mapped('product_variant_ids').ids)], limit=1)
        if done_moves:
            raise UserError(_("You can not change the unit of measure of a product that has already been used in a done stock move. If you need to change the unit of measure, you may deactivate this product."))
    return super(ProductTemplate, self).write(vals)

метод, который я хочу выполнить:

@api.multi
def write(self, vals):
    if 'uom_id' in vals:
        new_uom = self.env['product.uom'].browse(vals['uom_id'])
        updated = self.filtered(lambda template: template.uom_id != new_uom)
        done_moves = self.env['stock.move'].search([('product_id', 'in', updated.mapped('product_variant_ids').ids)], limit=1)
    print("@")   
    return super(my_product_class, self).write(vals)\

Первый метод записи находится в базовом классе product.py, поэтому я не могу его изменить, поэтому я хочу выполнить свой правильный метод. Как это сделать?


person Aakash Mehta    schedule 16.03.2017    source источник
comment
Вы можете попробовать с оператором try, кроме и поймать эту ошибку пользователя и передать   -  person dccdany    schedule 17.03.2017
comment
Эй, а можно поподробнее, как это сделать. Можете ли вы привести небольшой пример @dccdany   -  person Aakash Mehta    schedule 17.03.2017


Ответы (1)


класс my_product_class(models.Model):

_inherit="product.template"


@api.multi
def write(self, vals):
    print(" ")
    return super(**ProductTemplate**, self).write(vals)

здесь я унаследовал класс. В методе возврата имя класса, которое предполагается перезаписать

person Aakash Mehta    schedule 17.03.2017