Python 如何向Odoo 8中sale.order.line中的onchange_product_id方法添加功能?

Python 如何向Odoo 8中sale.order.line中的onchange_product_id方法添加功能?,python,python-2.7,odoo-8,odoo,Python,Python 2.7,Odoo 8,Odoo,我想扩展sale.order.line模型的onchange\u product\u id方法。我试着用新的和旧的api风格来做,但都没用。以下是我的尝试: 旧api: import logging from openerp.osv import fields, osv _logger = logging.getLogger(__name__) class sale_order_line(osv.osv): _inherit = 'sale.order.line' def

我想扩展sale.order.line模型的onchange\u product\u id方法。我试着用新的和旧的api风格来做,但都没用。以下是我的尝试:

旧api:

import logging
from openerp.osv import fields, osv

_logger = logging.getLogger(__name__)

class sale_order_line(osv.osv):
    _inherit = 'sale.order.line'

    def onchange_product_id(self, cr, uid, ids, product_id, context=None):
        _logger.debug('product_id has changed')
        return {}
新api:

from openerp import models, fields, api
import logging

_logger = logging.getLogger(__name__)

class sale_order_line(models.Model):
    _inherit = 'sale.order.line'

    @api.onchange('product_id')
    def onchange_product_id(self):
        _logger.debug('product_id has changed')
        return True
试试这个方法(我还没试过,但应该可以)

来自openerp.osv导入字段,osv
类CustomSaleOrderLine(osv.osv):
_inherit='sale.order.line'
def产品标识变更(自身、cr、uid、标识、价格表、产品、数量=0、,
计量单位=False,数量=0,计量单位=False,名称='',合作伙伴id=False,
lang=False,update\u tax=True,date\u order=False,packaging=False,fiscal\u position=False,flag=False,context=None):
#一些操作
返回super(CustomSaleOrderLine,self)。产品id更改(cr、uid、id、价目表、产品、数量、,
计量单位、数量、计量单位、名称、合作伙伴id、,
lang、更新税、日期订单、包装、财务状况、标志、上下文)

伙计,你的天才!谢谢它应该说
return super(CustomSaleOrderLine,self)。产品\u id\u change…
,但是它工作得很好!在odoo8中你是不可能做到的,是吗?啊,是的,对不起,我在最后一秒更改了它。我会更新答案。不客气!!很抱歉,我没有找到使用ODOO8API的方法。也许您必须以类似的方式重写该方法,然后可以使用de
@api.onchange
运算符