0

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

按照这个线程答案的建议,我创建并安装了一个模块并尝试覆盖product.product的保存方法,如下所示:

# -*- 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这里是否正确。我从文档中遵循了这一点。

这段代码有什么问题?它什么也没做。

4

1 回答 1

1

尝试关注并在 return 语句之前添加您的自定义代码,或者在某处捕获 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)

我希望这可以帮助你。

于 2015-03-05T05:19:23.863 回答