是否可以在openerp中向继承的模块添加新方法

时间:2014-08-01 06:54:29

标签: inheritance openerp openerp-7

我有一个继承的“购买”模块。 如果我在purchase.py中添加一个新方法,我可以在我的视图(表单)中使用它。但是,如果我在继承模块中添加它。我无法在表单视图中使用它。

有没有办法在继承的模块中添加我的新方法?

提前致谢。

1 个答案:

答案 0 :(得分:2)

基本上,您需要为代码在继承模块中工作做什么:

_inherit = 'purchase.order'

然后从更新的xml视图中调用您的函数。例如,检查代码:

class account_asset_asset(osv.osv):

    _inherit = 'account.asset.asset'

    def _check_value(self, cr, uid, ids, context=None):
        for asset in self.browse(cr, uid, ids, context=context):
            if asset.purchase_value < 0.0:
                return False
        return True

    _constraints = [
        (_check_value, 'Asset value must be greater than 0!', ['purchase_value']),
    ]

这将检查资产的purchase_value是否大于0,否则返回False,这样用户将无法保存他的记录。更重要的是,您可以轻松覆盖继承模型中使用的函数,以便它以您希望的方式工作。