在调用Odoo 12中的操作按钮时保持向导在后台打开,可以通过以下步骤实现:
models.py
文件中,定义一个新的操作按钮方法。例如,可以创建一个名为open_wizard
的方法。ir.actions.act_window
类来创建一个新的动作。设置res_model
参数为向导模型的名称,例如my.wizard
。view_mode
参数为form
,以确保向导以表单视图的形式打开。target
参数为new
,以确保向导在后台以新的标签页或窗口中打开。views.xml
文件中,创建一个新的动作视图。设置model
参数为向导模型的名称,例如my.wizard
。button
标签来创建一个新的按钮。设置name
参数为按钮的名称,例如Open Wizard
。type
参数为object
,以确保按钮与模型对象关联。string
参数为按钮的显示文本。attrs
参数为按钮的属性,其中包括调用自定义模块中的操作按钮方法。以下是一个示例代码:
# models.py
from odoo import models, fields, api
class MyModel(models.Model):
_name = 'my.model'
@api.multi
def open_wizard(self):
action = {
'type': 'ir.actions.act_window',
'res_model': 'my.wizard',
'view_mode': 'form',
'target': 'new',
}
return action
# views.xml
<odoo>
<data>
<record id="view_my_wizard_form" model="ir.ui.view">
<field name="name">my.wizard.form</field>
<field name="model">my.wizard</field>
<field name="arch" type="xml">
<form>
<!-- Define wizard layout and fields here -->
</form>
</field>
</record>
</data>
</odoo>
# my_module.xml
<odoo>
<data>
<record model="ir.ui.view" id="view_my_model_form">
<field name="name">my.model.form</field>
<field name="model">my.model</field>
<field name="arch" type="xml">
<form>
<!-- Define model form layout and fields here -->
<header>
<button name="open_wizard" type="object" string="Open Wizard" attrs="{'invisible': [('state', '=', 'draft')]}"/>
</header>
</form>
</field>
</record>
</data>
</odoo>
请注意,以上代码仅为示例,实际实现可能需要根据具体需求进行调整。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云