3

データベース内の設定と実際のフォーム フィールドの連結に基づいて URL をレンダリングする Odoo v9 ウィジェットを作成しています。

私が考えるデータベースの設定は、ir_config_parameter にあるはずです。モジュールにデフォルト値を挿入しています。

ウィジェットをレンダリングするときにこの値を取得する最良の方法は何ですか? を使用して非同期 ajax 呼び出しを行う

新しいモデル("ir.config_parameter")

少し手が重いようです。これを行うためのより良い方法はありますか?

ありがとう。

ウィジェットコード:

    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/>');
        }
    });
4

1 に答える 1

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);
            });
        // ...
        }
    });

これがお役に立てば幸いです。

于 2016-03-30T16:03:47.667 に答える