如何在Odoo 11/12中使用JavaScript与搜索方法一起使用RPC查询?

时间:2018-11-02 12:35:01

标签: javascript odoo rpc odoo-11

我有以下代码:

odoo.define('module_name.templates', function(require){
"use strict";

$(document).ready(function() {
    var rpc = require('web.rpc');

    $('#query').click(getProductBySKU);
    function getProductBySKU(){
        var domain = [];
        var args = [domain];

        var res = rpc.query({
            model: 'product.template',
            method: 'search',
            args: args
        }).then(function (products) {
            console.log(product); });
        };
    });
});

有了该代码,它给了我一个数字数组,例如。 [1,2]。数组的长度等于我拥有的条目数,但根本没有对象。如果我将域替换为[[''id','=',2)]之类的错误,则会出现错误“ Int对​​象不可下标”。

所以我的问题:是否可以通过搜索方法从数据库中获取对象列表,或者至少从指定的DB条目中获取字段。

我也尝试了search_read方法。像这样:

odoo.define('shift_knob.templates', function(require){
"use strict";

$(document).ready(function() {
    var rpc = require('web.rpc');

    $('#query').click(getProductBySKU);
    function getProductBySKU(){
        console.log("Hello world!");
        var domain = [('id', '=', 2)];
        var args = [domain];

        var res = rpc.query({
            model: 'product.template',
            method: 'search_read',
            args: [[], ['name', 'default_code']]
            /* args: args */
        }).then(function (products) {
            console.log(products); });
        };
    });
});

我得到具有名称,默认代码的对象列表,但是我只能使用id作为标识符,而不能使用我想要的字段

1 个答案:

答案 0 :(得分:0)

更改


[('id', '=', 2)];

收件人


[ ['id', '=', 2], [] ];