【问题标题】:Odoo UI widget - how to get settings from database?Odoo UI 小部件 - 如何从数据库中获取设置?
【发布时间】:2016-03-24 23:55:26
【问题描述】:

我正在编写一个 Odoo v9 小部件,它根据数据库中的设置和实际表单字段的连接来呈现 URL。

我认为数据库中的设置应该存在于 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/>');
        }
    });

【问题讨论】:

  • 你想在哪里显示设置值?我的意思是它将是表单域?
  • 从小部件内部 - 我正在编写 javascript - 我需要获取并使用配置设置。
  • 显示你的 js 小部件。我做了类似的事情。也许我可以帮忙。
  • 添加了小部件代码。
  • 表格用什么模型?为什么不能为此添加compute 字段?

标签: openerp odoo-9 odoo-view


【解决方案1】:

您可以为此使用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);
            });
        // ...
        }
    });

希望对你有所帮助。

【讨论】:

  • 谢谢,我可能不得不这样做 - 但正如我在问题中所说的那样,执行 ajax 调用正是我希望避免的。我要做的就是呈现一个链接(或者可能是几个)。回到服务器,异步渲染这些链接,会很慢。所以我正在寻找一种更好的通用方法来实现这一切。
  • 如果你找到更好的东西,请告诉我。还有一件事......我检查了不同应用程序的来源。我还没有看到像配置一样的东西。通过 RPC 使用 ir_config_parameter
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-22
  • 2021-04-03
  • 1970-01-01
  • 2023-04-01
相关资源
最近更新 更多