2016-03-24 10 views
2

私はOdoo v9ウィジェットを作成しています。このウィジェットは、データベース内の設定と実際のフォームフィールドの連結に基づいてURLを表示します。Odoo UIウィジェット - データベースから設定を取得するには?

データベースの設定は、ir_config_parameterに記述する必要があります。私は自分のモジュールでデフォルト値を挿入しています。

ウィジェットのレンダリング時にこの値を取得する最も良い方法は何ですか?

新モデル( "ir.config_parameter")を使用して非同期AJAX呼び出しを行う

は少し重い利きそうです。これを行うより良い方法はありますか?

ありがとうございました。

ウィジェットコード:

var UrlWidget2 = form_common.FormWidget.extend({ 
     start: function() { 
      this._super(); 
      this.field_manager.on("field_changed:ref", this, this.display_result); 
      this.display_result(); 
     }, 
     display_result: function() { 
      var ref = this.field_manager.get_field_value("ref"); 

      if (!ref) return; 

      var baseUrl = 'https://example.com'; //this is the value I want to get from the setting in the database. 
      var url = baseUrl + '/foo/' + ref;  

      this.$el.html('<a href="' + url + '" target="portal">View Externally</a><br /><br/>'); 
     } 
    }); 
+0

ここで、設定値を表示したいですか?私はフォームのフィールドになるという意味ですか? –

+0

ウィジェット内から - 私はjavascriptを書いています - 私は設定を取得して利用する必要があります。 – Nik

+0

jsウィジェットを表示します。私は似たようなことをした。多分私は助けることができます。 –

答えて

0

あなたはこのためにRPCを使用することができます。これは私のために働く例です:

var Model = require('web.DataModel'); 

var UrlWidget2 = form_common.FormWidget.extend({ 
     // just example how to get parameter from backend 
     display_result: function() { 
      var parameter = new Model('ir.config_parameter'); 
      // get fields value, key 
      parameter.query(['value', 'key']) 
       // criteria of search - record with id = 1 
       .filter([['id', '=', 1]]) 
       // only one record 
       .limit(1) 
       .all() 
       .then(function (parameter) { 
        // here data from server 
        console.log(parameter); 
      }); 
     // ... 
     } 
    }); 

希望します。

+0

ありがとう、私はそれを行う必要があります - しかし、私の質問で言ったように、アヤックスコールをすることは私が避けたいものです。私がしようとしているのは、リンク(あるいは、おそらくいくつか)をレンダリングすることだけです。サーバーに戻り、これらのリンクを非同期的にレンダリングするには、遅くなるだけです。だから私はこれをすべて達成するより良い一般的な方法を探しています。 – Nik

+0

あなたが何か良いものを見つけたら教えてください。もう一つは...私はさまざまなアプリのソースをチェックしました。私は設定のようなものを見たことがない。 'ir_config_parameter'はRPCを通して動作します。 –

関連する問題