我正在尝试使用onchange装饰器来验证“容量”字段,但是由于某些原因,当我发送警告消息时,前一行停止工作。模板会在没有警告的情况下更新字段
@api.onchange('capacity')
def check_capacity_values(self):
if self.capacity<0:
self.capacity=0
raise Warning(_('wrong capacity.'))
答案 0 :(得分:1)
您可以将字典用作由api.onchange
装饰的方法的返回值。警告消息的键为warning
,另一个值为键为title
和message
的字典。一个例子:
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",
}
}