This question has been flagged
3 Replies
8326 Views

I want to read a fieldname value from the current user from model res.users with Javascript. I tried the example from https://www.odoo.com/forum/help-1/question/javascript-how-to-get-a-value-of-model-field-119109

It seems thats web.Model and web.DataModel are not working anymore in v11? Console gives missing depencies.

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

For example, this works in v10 and returns: {id: 1, name: "Administrator"}

The same scripts gives 'Missing dependencies: ["web.DataModel"]' in V11

odoo.define('appname.myfunct', function (require) {
    "use strict";
 
    var Model = require('web.DataModel');
 
    new Model('res.users').query(['name'])
                             .filter([['id', '=', 1]])
                             .first()
                             .then(function(res) {
                                  console.log(res);
                             });    
});
Avatar
Discard
Best Answer

Hi,

in Odoo 11 you need to use

var rpc = require('web.rpc');

instead of 

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

And later call a method using .query() method as below:

            rpc.query({
                model: 'model.name',
                method: 'method_name',
                args: [{
                    'arg1': value1,
                    'arg2': value2,
                }]
            }).then(function (returned_value) { // do something }
Avatar
Discard
Author

Thanks, I will try it

Author Best Answer

This seems to work:

var id = 1;   
    rpc.query({
                model: 'res.users',
                method: 'read',
                args: [[id], ['name']],
            }).then(function(res) {
                console.log(res);
                });

 

Avatar
Discard