继承产品保存方法

时间:2015-03-04 22:14:45

标签: openerp odoo odoo-8

我想在保存(添加或更新)产品时运行脚本。

根据对this thread的回答的建议,我创建并安装了一个模块并尝试覆盖product.product的save方法,如下所示:

# -*- coding: utf-8 -*-

from openerp.osv import osv

class lcd_update(osv.osv):
  _inherit = 'product.product'

  def save(self, **args):
    self.log()
    value = super(lcd_update, self).save(self, **args)
    return value

  def log():
    f = open('log.txt', 'w')
    f.write('test\n')
    f.close()

说实话,我不知道lcd_update在这里是否正确。我从文档中了解到了这一点。

这段代码有什么问题?它没有做任何事情。

1 个答案:

答案 0 :(得分:1)

尝试关注并在返回语句之前添加自定义代码或在某处捕获super的结果并在此之后添加代码并返回更改的结果,不要忘记从方法返回。

from openerp.osv import osv

class lcd_update(osv.osv):
  _inherit = 'product.product'

  def create(self, cr, uid, vals, context=None):
    return super(lcd_update,self).create(cr, uid, vals, context=context)

  def write(self, cr, uid, ids, vals, context=None):
    return super(lcd_update,self).write(cr, uid, ids, vals, context=context)

我希望这会对你有所帮助。