2015-03-04 3 views
0

Я хотел бы запустить скрипт, когда продукт будет сохранен (добавлен или обновлен).Наследовать метод сохранения продукта

По совету ответа на this thread, я создал и установил модуль и попытался переопределить метод сохранения 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. Я последовал этому из документации.

Что не так с этим кодом? Он ничего не делает.

ответ

1

Попробуйте выполнить добавочный код либо до оператора return, либо уловите результат супер где-то и добавьте свой код после этого и верните измененный результат, не забудьте вернуться из метода.

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) 

Надеюсь, это вам поможет.

+0

Что ж, это сработало! Большое спасибо :)! – jroeleveld

Смежные вопросы