Изменить значение поля и вызвать событие onchange при нажатии кнопки

Очень простой пример: я добавил кнопку Change to default partner (type="object") в объект счета. Когда я нажимаю ее, вызывается функция, которая возвращает идентификатор (или другие значения) партнера по умолчанию. Как я могу изменить поле Partner, чтобы оно вызывало событие onchange этого поля (оно реагировало бы так, как если бы я изменил его из пользовательского интерфейса)?


person and3p    schedule 15.08.2012    source источник


Ответы (1)


Если это кнопка, то в объекте кнопки напишите идентификатор партнера в объект счета-фактуры, который мы получаем из указанной вами функции, и если вы хотите выполнить функцию 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
person OmaL    schedule 17.08.2012
comment
Обратите внимание, что этот способ сохранит модификацию. Как только пользователь нажал на вашу кнопку, это сделано, даже если он не сохраняет. - person Thibaut D.; 03.09.2012