小智 8
是的,可以打开另一个窗口.你必须这样做.
@api.multi
def button_method(self):
return {
'type': 'ir.actions.act_window',
'name': 'form name',
'res_model': 'object name',
'res_id': id ,
'view_type': 'form',
'view_mode': 'form',
'target' : 'new',
}
Run Code Online (Sandbox Code Playgroud)
但是当记录保存时它是可能的.如果你想在保存记录之前打开向导,你必须像这样在js中编码.
在js文件中: openerp.module_name = function(instance){
var QWeb = openerp.web.qweb;
_t = instance.web._t;
instance.web.View.include({
load_view: function(context) {
var self = this;
var view_loaded_def;
$('#oe_linking_e').click(this.on_preview_view_button);
//this is button class which call method for open your form.
return self._super(context);
},
Run Code Online (Sandbox Code Playgroud)
//打开表单的方法
on_preview_view_button: function(e){
e.preventDefault();
this.do_action({
name: _t("View name"),
type: "ir.actions.act_window",
res_model: "object",
domain : [],
views: [[false, "list"],[false, "tree"]],
target: 'new',
context: {},
view_type : 'list',
view_mode : 'list'
});
}
},
});
};
Run Code Online (Sandbox Code Playgroud)
在xml文件中添加按钮并id="oe_linking_e"在js代码中提供您提供的任何内容.
小智 5
你可以这种方式返回表格.
在您的按钮方法中返回此字典.它将在弹出窗口中打开目标表单,
def button_method(...........):
return {
'name': _(some name),
'view_type': 'form',
"view_mode": 'form',
'res_model': model-name,
'type': 'ir.actions.act_window',
'target': 'new',
}
Run Code Online (Sandbox Code Playgroud)
你可以传入<br> 'res_id': target_id上面的字典来打开一个特定的记录