显示消息并为onchange方法中的字段赋值

时间:2017-08-31 13:34:23

标签: openerp odoo-9

我正在尝试编写一个onchange,它返回一条消息并同时更新一个值。到目前为止它显示消息但字段保持不变。我的代码是:

@api.onchange('changed_field')
def my_onchange_method(self):    
    if self.other_field:
        self.changed_field=False
        raise Warning('Some message.')

我认为我的错误在于发送消息,有人能告诉我如何在odoo 9中实现这一点吗?谢谢。

2 个答案:

答案 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',{})}