Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 保存和确认时如何保留该值?奥多V8.0_Python_Openerp_Odoo 8 - Fatal编程技术网

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更改中删除。你的代码成功了。。