我正在尝试获取特定的menuitem并将其存储在JavaScript中的变量中:
var Menus = new openerp.web.Model('ir.ui.menu');
现在,我们可以对Menus
应用过滤器来获取menuitem,例如查找其名称,但事实是有很多具有相同名称的menuitems。所以我认为唯一标识我的menuitem的属性和它与另一个的区别是XML ID。
但我不知道如何从JavaScript代码中获取它。有没有建立的功能来获得它?我该如何管理我的目的?
答案 0 :(得分:0)
好吧,我找到了一个解决方法。可能有更好的解决方案,在这种情况下,请发布。
在数据库中,有一个名为ir_model_data
的表。此表存储列name
下的XML ID。列model
和res_id
表示存储该XML ID记录的模型及其ID。还有一个名为module
的列,可用于在提取的XML ID(列name
)之前将其放入,以获取 module_name.xml_id 表示法。
例如:
我有一个ID为303的ir.ui.menu
模型的记录,我想从Javascript获取它的XML ID:
var Menus = new openerp.web.Model('ir.model.data');
Menus.query(['name']).filter(['&', ['model', '=', 'ir.ui.menu'], ['res_id', '=', 303]]).all().then(function(ir_model_datas) {
for (i in ir_model_datas) {
console.log(ir_model_datas[i].name);
}
});