odoo 8 中的问题显示警告消息
Issue in odoo 8 displaying warning message
我正在尝试使用 onchange 装饰器验证 "capacity" 字段,但由于某种原因,当我发送警告消息时,前一行停止工作。模板更新字段时没有警告
@api.onchange('capacity')
def check_capacity_values(self):
if self.capacity<0:
self.capacity=0
raise Warning(_('wrong capacity.'))
对于 api.onchange
修饰的方法,您可以使用字典作为 return 值。警告消息的键将是 warning
,值是另一个包含键 title
和 message
的字典。一个例子:
return {
'warning': {'title': "WARNING!",
'message': "It isn't allowed to have a negative capacity!"}
}
我认为问题可能是您在发出警告之前在 self.capacity 中所做的更改未存储在数据库中,因为您使用的是@api.onchange,因此新值是仅显示在 UI 中,但未存储在数据库中。
尝试使用 @api.depends 代替,更改将同时反映在 UI 和数据库中。
@api.onchange('capacity')
def check_capacity_values(self):
if self.capacity<0:
self.capacity=0
return {'warning': {
'title': "Warning",
'message': "message",
}
}
我正在尝试使用 onchange 装饰器验证 "capacity" 字段,但由于某种原因,当我发送警告消息时,前一行停止工作。模板更新字段时没有警告
@api.onchange('capacity')
def check_capacity_values(self):
if self.capacity<0:
self.capacity=0
raise Warning(_('wrong capacity.'))
对于 api.onchange
修饰的方法,您可以使用字典作为 return 值。警告消息的键将是 warning
,值是另一个包含键 title
和 message
的字典。一个例子:
return {
'warning': {'title': "WARNING!",
'message': "It isn't allowed to have a negative capacity!"}
}
我认为问题可能是您在发出警告之前在 self.capacity 中所做的更改未存储在数据库中,因为您使用的是@api.onchange,因此新值是仅显示在 UI 中,但未存储在数据库中。
尝试使用 @api.depends 代替,更改将同时反映在 UI 和数据库中。
@api.onchange('capacity')
def check_capacity_values(self):
if self.capacity<0:
self.capacity=0
return {'warning': {
'title': "Warning",
'message': "message",
}
}