Как использовать RPC-запрос в JavaScript с методом поиска в Odoo 11/12?

У меня есть следующий код:

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

С этим кодом он дает мне массив чисел, e.x. [1,2]. Длина массива равна количеству записей, которые у меня есть, но никаких объектов. Если я заменю домен чем-то вроде [('id', '=', 2)], я получаю сообщение об ошибке «Int object is not subscriptable».

Итак, мой вопрос: можно ли получить список объектов из базы данных методом поиска или, по крайней мере, получить поля из указанных записей базы данных.

Я также пробовал с методом 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 в качестве идентификатора, а не поля, которые мне нужны.


person wasd    schedule 02.11.2018    source источник
comment
Вы хотите получить данные для определенного идентификатора. Это так ?   -  person Keval Mehta    schedule 13.06.2019


Ответы (1)


Изменять


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

To


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

person Francisco    schedule 12.06.2019