Odoo 继承版本8中的旧方法

Odoo 继承版本8中的旧方法,odoo,Odoo,当我编写重写当前方法的自定义模块时,是否需要在相同版本的api中编写 例如,模块产品是用v7编写的,当我重写产品的方法时,这需要在v7中吗?或者我可以在v8中这样做吗?是的,您肯定可以在v7方法中重写到v8 from openerp import models, fields, api, _ class product_product(models.Model): _inherit= "product.product" _description = "Product" @ap

当我编写重写当前方法的自定义模块时,是否需要在相同版本的api中编写


例如,模块产品是用v7编写的,当我重写产品的方法时,这需要在v7中吗?或者我可以在v8中这样做吗?

是的,您肯定可以在v7方法中重写到v8

from openerp import models, fields, api, _

class product_product(models.Model):
    _inherit= "product.product"
    _description = "Product"

@api.v7
def _product_code(self, cr, uid, ids, name, arg, context=None):
    res = {}
    if context is None:
        context = {}
    for p in self.browse(cr, uid, ids, context=context):
        res[p.id] = self._get_partner_code_name(cr, uid, [], p, context.get('partner_id', None), context=context)['code']
    return res 
我只是在Odoo8.0的新API产品类中重写v7
\u product\u code方法


我希望我的回答能对您有所帮助:)

您只需更新代码odoo引擎,它会根据需要自行管理升级/降级机制

from openerp import models, fields, api, _

class product_product(models.Model):
    _inherit= "product.product"
    _description = "Product"

    @api.model
    def create(self, vals):
        ### Add your code here
        return super(product_product, self).create(vals);

    @api.multi
    def write(self, vals):
        ### Add your code here
        return super(product_product, self).write(vals);

类似地,您可以覆盖旧版本的任何方法,onchange方法除外。在onchange方法中,您需要以旧模式提供定义。

唯一不能这样做的情况是对于
onchange
,在这种情况下,您不能混合使用新API和旧API。这意味着我的方法不适用于对更改的调用。。??