Odoo 9:如何使用(action_manager)从js显示对象的表单视图?

时间:2017-01-05 06:18:26

标签: javascript odoo odoo-9

我正在尝试使用self.action_manager.do_action通过js代码显示特定对象的表单视图。

显示特定记录的树视图的代码

self.action_manager.do_action({
                type: 'ir.actions.act_window',
                view_type: 'list',
                view_mode: 'list,form',
                res_model: res_model,
                domain: [['id', '=', res_id]],
                views: [[false, 'list'], [false, 'form']],
                target: 'new'
            });

此代码可以帮助我使用res_id打开给定res_model的树视图。但我想知道如何打电话并显示同一记录的表单视图。我尝试在上面的代码中使用'form'而不是'list',如下所示,

代码尝试显示特定记录的表单视图

            view_type: 'form',
            view_mode: 'form',
            res_model: res_model,
            domain: [['id', '=', res_id]],
            views: [[false, 'form']],
            target: 'current'

这没有帮助。

任何人都可以帮助我。基本上我在js中有记录细节,并希望在自己的表单视图中显示记录。非常感谢帮助我。

1 个答案:

答案 0 :(得分:0)

您可以使用表单视图ID指定要显示的表单,您需要指定view_mode。 要查看特定记录,您必须将记录ID传递为res_id,请参阅以下内容:

var model_obj = new instance.web.Model('ir.model.data');
view_id = model_obj.call('get_object_reference',
                          ["your_module_name_here", 
                           "your_form_xml_id_here"
                          ]
                        );

var view_manager = self.view.getParent(),
action_manager = view_manager.getParent();
self.view.destroy();
action_manager.do_action({
            type: 'ir.actions.act_window',
            res_model: res_model,
            res_id: res_id,
            view_mode: 'form',
            views: [[view_id, 'form']],
            target: 'current'
          });