【问题标题】:Issue in odoo 8 displaying warning messageodoo 8 中的问题显示警告消息
【发布时间】:2019-03-21 13:29:26
【问题描述】:

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

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

【问题讨论】:

    标签: api warnings decorator odoo onchange


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      改用@api.depends 试试,更改会同时反映在 UI 和数据库中。

      【讨论】:

        【解决方案3】:
        @api.onchange('capacity')
        def check_capacity_values(self):
            if self.capacity<0:
                self.capacity=0
                return {'warning': {
                            'title': "Warning",
                            'message': "message",
                            }
                        }
        

        【讨论】:

        • 请解释你的答案。
        猜你喜欢
        • 1970-01-01
        • 2016-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-22
        • 1970-01-01
        相关资源
        最近更新 更多