2016-05-25 2 views
2

私は特定のメニューアイテムを取得し、JavaScriptで変数に格納しようとしています:OdooでJSコードからxml_idを取得できますか?

var Menus = new openerp.web.Model('ir.ui.menu'); 

今、私たちは、例えば、メニューアイテムを取得するためにMenusにフィルタを適用し、その名前を探しますが、することができます事は、同じ名前のメニューアイテムがたくさんあるということです。だから私は、私のmenuitemを識別する唯一の属性とそれが他のものとの違いは、XML IDだと思う。

しかし、JavaScriptコードから取得する方法はわかりません。それを得るためにビルドされた関数はありますか?私の目的はどのように管理できますか?

答えて

0

まあ、私は回避策を見つけました。その場合、よりよい解決策があるかもしれません。その場合、投稿してください。

データベースには、ir_model_dataという名前のテーブルがあります。このテーブルには、XML IDが列nameの下に格納されます。列modelres_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); 
    } 
}); 
関連する問題