如何在 Odoo 8 中向 sale.order.line 中的 onchange_product_id 方法添加功能?
How to add a functionality to onchange_product_id method in sale.order.line in Odoo 8?
我想扩展 sale.order.line 模型的 onchange_product_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
试试这个方法(我还没试过,但应该可以)
from openerp.osv import fields, osv
class CustomSaleOrderLine(osv.osv):
_inherit = 'sale.order.line'
def product_id_change(self, cr, uid, ids, pricelist, product, qty=0,
uom=False, qty_uos=0, uos=False, name='', partner_id=False,
lang=False, update_tax=True, date_order=False, packaging=False, fiscal_position=False, flag=False, context=None):
# some operations
return super(CustomSaleOrderLine, self).product_id_change(cr, uid, ids, pricelist, product, qty,
uom, qty_uos, uos, name, partner_id,
lang, update_tax, date_order, packaging, fiscal_position, flag, context)
我想扩展 sale.order.line 模型的 onchange_product_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
试试这个方法(我还没试过,但应该可以)
from openerp.osv import fields, osv
class CustomSaleOrderLine(osv.osv):
_inherit = 'sale.order.line'
def product_id_change(self, cr, uid, ids, pricelist, product, qty=0,
uom=False, qty_uos=0, uos=False, name='', partner_id=False,
lang=False, update_tax=True, date_order=False, packaging=False, fiscal_position=False, flag=False, context=None):
# some operations
return super(CustomSaleOrderLine, self).product_id_change(cr, uid, ids, pricelist, product, qty,
uom, qty_uos, uos, name, partner_id,
lang, update_tax, date_order, packaging, fiscal_position, flag, context)