Openerp 更改字段值并在按下按钮时触发onchange事件

Openerp 更改字段值并在按下按钮时触发onchange事件,openerp,Openerp,非常简单的示例:我在invoice对象上添加了对默认partner button type=object的更改。当我按下它时,会调用一个函数,该函数返回默认伙伴的ID或其他值。我如何更改Partner字段,它将触发该字段的onchange事件,它的反应就像我从UI更改它一样?如果它是一个按钮,那么在button对象中,将Partner ID写入我们从您所说的函数中获得的invoice对象,如果您想执行Partner的onchange函数,然后调用按钮函数中的onchange函数,该函数将返回一个

非常简单的示例:我在invoice对象上添加了对默认partner button type=object的更改。当我按下它时,会调用一个函数,该函数返回默认伙伴的ID或其他值。我如何更改Partner字段,它将触发该字段的onchange事件,它的反应就像我从UI更改它一样?

如果它是一个按钮,那么在button对象中,将Partner ID写入我们从您所说的函数中获得的invoice对象,如果您想执行Partner的onchange函数,然后调用按钮函数中的onchange函数,该函数将返回一个字典并从该字典中获取“值”。 例如:

def button_change_partner(self, cr, uid, ids, context=None):
    ##Your function to get partner id
    partner_details = self.onchange_partner_id(cr, uid, [], partner_id,context)#please replace with your actual onchange functionality and its arguments
    partner = partner_details['values']
    partner.update('partner_id': partner_id)
    self.write(cr, uid, ids, partner, context)
    return True

如果它是一个按钮,那么在button对象中,将合作伙伴ID写入我们从您所说的函数中获得的invoice对象,如果您想执行partner的onchange函数,那么在button函数中调用onchange函数,该函数将返回一个字典并从该字典中获取“值”。 例如:

def button_change_partner(self, cr, uid, ids, context=None):
    ##Your function to get partner id
    partner_details = self.onchange_partner_id(cr, uid, [], partner_id,context)#please replace with your actual onchange functionality and its arguments
    partner = partner_details['values']
    partner.update('partner_id': partner_id)
    self.write(cr, uid, ids, partner, context)
    return True

请注意,这样做将保存修改。一旦用户单击了您的按钮,即使他没有保存,也会完成。请注意,这样做将保存修改。一旦用户点击了你的按钮,它就完成了,即使他没有保存。