Python 保存和确认时如何保留该值?奥多V8.0
此方法返回相关Python 保存和确认时如何保留该值?奥多V8.0,python,openerp,odoo-8,Python,Openerp,Odoo 8,此方法返回相关产品id的产品数量(qty\u available),工作正常,问题是在保存或确认操作时,我得到了qty\u available的默认值 def onchange_product_id(self, cr, uid, ids, product_id=False, product_uom_qty=0.0, product_uom=False, price_unit=0.0, qty_available=0.0, virtual_available=0.0, name='', anal
产品id
的产品数量(qty\u available
),工作正常,问题是在保存或确认操作时,我得到了qty\u available
的默认值
def onchange_product_id(self, cr, uid, ids, product_id=False, product_uom_qty=0.0, product_uom=False, price_unit=0.0, qty_available=0.0, virtual_available=0.0, name='', analytic_account_id=False, context=None):
result = {}
product_obj = self.pool.get('product.product')
if not product_id:
return {'value': {'product_uom_qty': 1.0, 'product_uom': False, 'price_unit': 0.0, 'qty_available': 0.0, 'virtual_available': 0.0, 'name': '', 'delay': 0.0}}
product = product_obj.browse(cr, uid, product_id, context=context)
result['name'] = product_obj.name_get(cr, uid, [product.id])[0][1]
result['product_uom'] = product.uom_id.id
result['qty_available'] = product.qty_available
return {'value': result}
尝试以下在新API Odoo V8中转换的代码:
@api.onchange('product\u id','product\u id.uom\u id','product\u id.qty\u available')
def onchange_product_id(自身):
如果不是self.product\u id:
自身产品数量=1.0
self.product_uom=假
自身价格单位=0.0
自身可用数量=0.0
self.virtual\u available=0.0
self.name=“”
self.delay=0.0
self.name=self.product\u id.name
self.product\u uom=self.product\u id.uom\u id
self.qty\u available=self.product\u id.qty\u available
以下是解决方案
def onchange\u product\u id(self,cr,uid,ids,product\u id=False,product\u-uom\u-qty=0.0,product\u-uom=False,price\u-unit=0.0,qty\u-available=0.0,virtual\u-available=0.0,name='',analysis\u-account\u-id=False,context=None):
结果={}
product\u obj=self.pool.get('product.product')
如果不是产品标识:
返回{'value':{'product\u-uom\u-qty':1.0,'product\u-uom':False,'price\u-unit':0.0,'qty\u-available':0.0,'virtual\u-available':0.0,'name':'','delay':0.0}
产品=产品对象浏览(cr、uid、产品id、上下文=上下文)
res['value'].update({'name':product_obj.name_get(cr,uid,[product.id])[0][1],'product_-uom':product.uom_-id.id,'qty_-available':product.qty_-available})
返回res
你能解释一下吗?我想如果你更新dict,你的问题可能已经解决了Hanks RaviPatel,更新dict时,我得到了Keyerror的值..我认为qty\u的readonly属性的问题是可用的,当我将其设置为false时效果很好我尝试了这个,但是如何在xml文件中调用它,并进行更改,所以我得到了这个错误:TypeError:onchange_product_id()正好接受1个参数(给定4个)@moo您的onchange字段在api.onchange('fieldname')中定义,并在xml文件中的onu更改中删除。你的代码成功了。。