如何返回消息并同时更新值(从按钮)

时间:2017-09-07 15:59:09

标签: openerp

我有一个带有按钮的表单视图,其目的是测试连接。 如果连接成功,我需要返回一条消息,同时在表单视图中更新一些值。

我的.py文件中有类似的内容:

def test_connection(self):        
        connected = self.connect(self.ip_address, self.port)
        if connected:
            self.data1='a'
            self.data2='b' 
        return True

到目前为止,我只能更新值,但如果我发出警告并显示消息:raise Warning(_('Connection OK.')),则数据不会更新。

有没有办法更新表单数据,同时显示信息消息?或者还有其他方法可以完成这样的事情吗?

3 个答案:

答案 0 :(得分:2)

您可以在向导中定义raise字段,而不是使用message消息。

message = fields.Char('Message')    

def test_connection(self):
    connected = self.connect(self.ip_address, self.port)
    if connected:
        self.update({data1: 'a',
                     data2: 'b',
                     message: 'Your Message'})
    return True

除非有消息设置,否则您可以以invisible的方式在视图上显示它。

<field name="message" attrs="{'invisible': [('message', '=', False)]}"/>

Views documentation

答案 1 :(得分:2)

您不必定义消息字段,只需添加div标签,其中包含一些漂亮的CSS样式。并根据连接状态使用attrs显示或隐藏它。

在odoo中,您无法同时显示错误和更新值

答案 2 :(得分:0)

您可以同时更新值并将向导作为消息返回。我觉得这很好。如果使用ant exception或引发的警告,服务器流将阻塞,因此值不能更新,同时更新的值将被撤销。