在odoo 8中显示警告消息的问题

时间:2019-03-21 13:29:26

标签: api warnings decorator odoo onchange

我正在尝试使用onchange装饰器来验证“容量”字段,但是由于某些原因,当我发送警告消息时,前一行停止工作。模板会在没有警告的情况下更新字段

@api.onchange('capacity')
def check_capacity_values(self):
    if self.capacity<0:
        self.capacity=0
        raise Warning(_('wrong capacity.'))

3 个答案:

答案 0 :(得分:1)

您可以将字典用作由api.onchange装饰的方法的返回值。警告消息的键为warning,另一个值为键为titlemessage的字典。一个例子:

return {
    'warning': {'title': "WARNING!",
                'message': "It isn't allowed to have a negative capacity!"}
}

答案 1 :(得分:0)

我认为问题可能在于您在发出警告之前对self.capacity所做的更改未存储在数据库中,因为您使用的是@ api.onchange,因此新值仅显示在UI中,但未存储在数据库中。

使用@ api.depends尝试一下,更改将同时反映在UI和数据库中。

答案 2 :(得分:0)

@api.onchange('capacity')
def check_capacity_values(self):
    if self.capacity<0:
        self.capacity=0
        return {'warning': {
                    'title': "Warning",
                    'message': "message",
                    }
                }