如何在Odoo中通过python方法将动作/向导绑定到特定模型

时间:2018-12-18 07:30:15

标签: python odoo

AFAIK,如果我要将动作/向导绑定到模型,则必须在xml中编写此行代码,例如:

<act_window name="New Sub menu"
    res_model="action.product"
    src_model="product.product"
    key2="client_action_multi" 
    view_mode="form" target="new" 
    view_type="form"
    id="act_new_sub_menu" />

显然,我必须重新启动服务器才能使此更改可用。

但是,我可以通过python触发另一种方法来将特定动作/向导绑定到odoo中的特定模型中吗?所以我不必重新启动服务器即可使这些操作/向导可用

  

注意:我们可以假定已经实现了动作/向导模型(action.product)并   完全读取。我只想将同一动作绑定到另一个   通过python方法创建模型(例如project.task)。

1 个答案:

答案 0 :(得分:0)

好,现在我明白了!! 我们只需要在ir.values中将现有的动作/向导注册到现有的另一个模型即可。换句话说,我只需要在python方法

中创建ir.values

例如:如果我想将向导“ action.product”绑定到模型project.task,我只需要编写以下代码即可:

self.env['ir.values'].create(
{'key': 'action',
'key2': 'client_action_multi',
'model': 'project.task',
'res_id': 0,
'name': 'act_new_sub_menu',
'value': 'ir.actions.act_window,' + str(self.env['ir.actions.act_window'].search([('name', '=', 'New Sub menu')]).ids[0]),
})

希望,这也对您有帮助。