我正在尝试编写一个onchange,它返回一条消息并同时更新一个值。到目前为止它显示消息但字段保持不变。我的代码是:
@api.onchange('changed_field')
def my_onchange_method(self):
if self.other_field:
self.changed_field=False
raise Warning('Some message.')
我认为我的错误在于发送消息,有人能告诉我如何在odoo 9中实现这一点吗?谢谢。
答案 0 :(得分:3)
我认为你提出了内置警告异常,这可能是该字段未更新的原因(我认为在引发异常时会回滚更改)。
请改为尝试:
@api.onchange('changed_field')
def my_onchange_method(self):
if self.other_field:
self.changed_field = False
return {
'warning': {
'title': 'TITLE OF THE WARNING MESSAGE BOX',
'message': 'YOUR WARNING MESSAGE',
}
}
我可以确认这至少对odoo 8有用。它可能适用于odoo 9.
答案 1 :(得分:0)
def onchange_amount_paid(self, cr, uid, ids, amount_paid, context=None):
res = {'value':{}}
if amount_paid:
if fee_type==1 and amount_paid<70:
warning = { 'title': ("Warning"), 'message': ('registration account minimum payment is 70'), }
return {'value': res.get('value',{}), 'warning':warning}
return {'value': res.get('value',{})}