【发布时间】:2014-08-01 20:40:56
【问题描述】:
我有一个用于“购买”的继承模块。 如果我在 purchase.py 中添加一个新方法,我可以在我的视图(表单)中使用它。但是,如果我将它添加到继承的模块中。我无法在表单视图中使用它。
有没有办法在继承的模块中添加我的新方法?
提前致谢。
【问题讨论】:
-
是的,您可以在继承的模块中添加新方法,在此处粘贴您的代码
标签: inheritance openerp openerp-7
我有一个用于“购买”的继承模块。 如果我在 purchase.py 中添加一个新方法,我可以在我的视图(表单)中使用它。但是,如果我将它添加到继承的模块中。我无法在表单视图中使用它。
有没有办法在继承的模块中添加我的新方法?
提前致谢。
【问题讨论】:
标签: inheritance openerp openerp-7
要让代码在继承的模块中工作,您必须做的基本上是使用:
_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,这样用户将无法保存他的记录。更重要的是,您可以轻松地覆盖继承模型中使用的函数,使其按照您希望的方式工作。
【讨论】: