def onchange_product_id(self, cr, uid, ids, product_id, context=None):
val = {
'name': product_id,
}
return {'value': val}
<field name="product_id" on_change="onchange_product_id(product_id, context)"/>
<field name="name"/>
当我选择&#39; product2&#39;时,我在one2many(product1,product2)中有值。函数onchange_product_id
返回值2而不是product2,它出现在字段'name'
上。
这只发生在我在many2one,one2many ....关系中使用on_change时,但在char,int和float中,函数的值返回正确。
我的问题是如何使用on_change函数获取one2many的正确值?
谢谢,
答案 0 :(得分:2)
你需要做类似的事情,
def onchange_product_id(self, cr, uid, ids, product_id, context=None):
product = self.pool.get('product.product').browse(cr, uid, product_id, context=context)
val = {
'name': product and product.name or '',
}
return {'value': val}
因为 product_id 包含且不是可浏览记录的ID。首先,您需要浏览该记录,然后需要获取产品名称。