gpt4 book ai didi

forms - 如何在 Openerp/Odoo 中使用自定义按钮保存表单数据

转载 作者:行者123 更新时间:2023-12-01 13:45:18 29 4
gpt4 key购买 nike

我们有一个带有字段的表单。我们已经添加了我们自己的“保存”按钮,并希望在单击此按钮时将表单上的数据持久保存到服务器。

我们知道如何在服务器上创建操作来处理按钮点击,但不知道如何检索表单数据。

目前,我们正在使用内置的保存按钮,但需要触发一些额外的功能,因此需要请求。

这就是我们的 XML 目前的样子。

    <record model="ir.ui.view" id="petra_ticket_hold_dialog">
<field name="name">petra.ticket_request.hold.dialog</field>
<field name="model">petra.ticket_request</field>
<field name="arch" type="xml">
<form string="Hold Ticket" edit="false" create="false" delete="false">
<sheet>
<group colspan="2">
<field name="hold_reason"/>
<field name="status" invisible="1"/>
</group>
<button string="Save" />
</sheet>
</form>
</field>
</record>

最佳答案

这里有一个可以帮助你的小例子。首先,您需要像这样向按钮添加一些模型操作:

<record model="ir.ui.view" id="petra_ticket_hold_dialog">
<field name="name">petra.ticket_request.hold.dialog</field>
<field name="model">petra.ticket_request</field>
<field name="arch" type="xml">
<form string="Hold Ticket" edit="false" create="false" delete="false">
<sheet>
<group colspan="2">
<field name="hold_reason"/>
<field name="status" invisible="1"/>
</group>
<!-- it means that will be calls method 'action_my_action' of object 'petra.ticket_request' -->
<button string="Save" name="action_my_action" type="object"/>
</sheet>
</form>
</field>
</record>

在此之后,您需要向模型添加方法:

# you can use @api.multi for collection processing like this:
# for ticket in self: ...something do here
# or you can use @api.model for processing only one object
@api.model
def action_my_action(self):
# here you have values from form and context
print(self.hold_reason, self._context)
# todo something here... and close dialog
return {'type': 'ir.actions.act_window_close'}

重新启动 openerp-server 并更新您的模块。

小心!对象将在您的action_my_action 之前保存在数据库中。希望对您有所帮助。

关于forms - 如何在 Openerp/Odoo 中使用自定义按钮保存表单数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36428375/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com