如何阻止 Odoo 自定义按钮自动保存?

Ist*_*era 4 openerp odoo-10

我在我的视图中创建了一个按钮,它触发了模块内的一个方法。但是,单击该按钮后,临时编辑的字段将被保存,并且在单击“放弃”按钮时不会恢复。

这是我的观点的代码:

<form>
  <sheet>
    <group>
    <field name="name" />
    </group>
    <button name="my_button" string="My Button" type="object" class="oe_edit_only" />
  </sheet>
</form>
Run Code Online (Sandbox Code Playgroud)

单击my_button该字段后,该字段name将保存在数据库中,该按钮Discard不再起作用。

在此处输入图片说明

单击我的自定义按钮时,如何防止 Odoo 保存临时数据?

(我正在使用 Odoo10,但我想旧版本的 Odoo 也是如此)

tra*_*isw 5

您可以将按钮更改为布尔字段并使您的my_button方法成为onchange.

Python

my_button = fields.Boolean('Label')

@api.multi
@api.onchange('my_button')
def onchange_my_button(self):
    for record in self:
        # whatever my_button does
Run Code Online (Sandbox Code Playgroud)

如果您希望它仍然显示为按钮,您可以显示样式为按钮的标签并隐藏实际的复选框。

XML

<label for="my_button" class="btn btn-sm btn-primary"/>
<field name="my_button" invisible="1"/>
Run Code Online (Sandbox Code Playgroud)