Odoo Help


Get value from python to Javascript : Odoo 9

Md. Tanzilul Hasan Khan
on 10/15/16, 2:32 AM 1,386 views

I am using odoo 9 and have created a module name 'custom_webpage' and inherited 'website' model.

There is a field in 'website' module named 'social_twitter'. I need that value in JS.

Now in my custom module JS file I can't bring the value. I tried:


It shows openerp not found error.

I tried:

openerp.website = function(instance) { };

It shows instance not found error.

Can anyone please tell me how can I get the value of social_twitter in js? I need to take the value from the field, split it and show it on the website with JS.


Shameem iWesabe

--Shameem iWesabe--
| 5 3 5
الخبر, Saudi Arabia
--Shameem iWesabe--

Activities     :    Youtube



           iWesabe                                  ◉

           Axon Communications        ❍

           Cybrosys Technologies        ❍

Shameem iWesabe
On 10/15/16, 3:39 AM

You can get the value through many ways 

First way is


from openerp import models, fields 

class YourModel(models.Model):
    _name = 'your.model'
     def your_function(self):
         # CODE TO GET VALUE
          return value


odoo.define('custom_webpage.my_js', function (require) {'use strict';
    var Model = require('web.Model');

    (new Model('your.model')).call('your_function').then(function (your_return_value) {


You can watch this on YouTube
How to call python function from Javascript in Odoo 10 ? 
How to add Js(Javascript) in Odoo 10 ?

Second way


from openerp import http 

class YourModel(http.Controller):
    @http.route(['/action_get_social_twitter'], type='json', auth="public")
    def get_social_twitter(self, **post):
        return value


odoo.define('custom_webpage.my_js', function (require) {'use strict';
     var ajax = require('web.ajax');
     ajax.jsonRpc("/action_get_social_twitter", 'call').then(function(your_return_value){

Thanks for the reply, I didn't understand the PY part. I need the value only in JS.

Why I need to write py function and isn't there any way to get the field value from model field to js?


Md. Tanzilul Hasan Khan
on 10/15/16, 3:53 AM

Python function is needed because js wan't to call a python function.

Getting value without python is possible.

but this is simple

You try ,It will help you


Shameem iWesabe
on 10/15/16, 3:58 AM

Ok, now I understand.

I will return a value in python function. JS will call that function and get that value.

In your first JS snippet you wrote 'custom_webpage.my_js' . What is my_js here?


Md. Tanzilul Hasan Khan
on 10/15/16, 4:25 AM

my_js is the name of your js.

you can give the same name of js file.

Shameem iWesabe
on 10/15/16, 4:29 AM

I have posted my code with an error in the answer section, please have a look.

Md. Tanzilul Hasan Khan
on 10/15/16, 4:38 AM

It is the mismatching of python function arguments .

add @api.one


def your_function(self):


add cr, uid etc

def your_function(self, cr, uid, ids, context=None):

or follow second step

Shameem iWesabe
on 10/15/16, 4:44 AM

I have used models.Model so can't use Cr,uid,ids..

@api is not working for some reason.

I am trying to use second method. But http controller shows no value.

I used post.get('social_twitter'). Is that the correct way to get data of a model for a field?

Md. Tanzilul Hasan Khan
on 10/15/16, 5:13 AM

in second method, did u ensure that the function is working ?

from openerp.http import request

use request.env['your.model'].search([)]) to get all objects of model

Shameem iWesabe
on 10/15/16, 5:53 AM

Thanks :D

I got this with following:

class website(http.Controller):

@http.route(['/action_get_value_to_website'], type='json', auth="public")

def get_value_to_website(self, **post):

cr, context, pool = request.cr, request.context, request.registry

website = pool.get('website')

hr_employee_ids = website.search(cr, SUPERUSER_ID, [], context=context)

twitter_data = website.browse(cr, SUPERUSER_ID, hr_employee_ids, context=context).social_twitter

value = twitter_data

return value

Md. Tanzilul Hasan Khan
on 10/15/16, 7:38 AM

Following your guidelines, I succeeded to pass a value defined in a controller to JS and log it into the console.

How would you get the same value available in a Qweb template in Odoo 10 and call it via <t t-esc="value"/>?


Alain Vanzella
on 5/2/17, 5:28 AM

I have wrote this:

Py file

def get_value_to_website(self): 
    value = self.social_twitter
return value

JS file:

odoo.define('custom_webpage.custom', function (require) {'use strict';
var Model = require('web.Model');
(new Model('website')).call('get_value_to_website').then(function (value) {

I am getting this error in console:

Server application error .......
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)\nTypeError: get_value_to_website() takes exactly 1 argument (3 given)\n","exception_type":"internal_error","message":"get_value_to_website() takes exactly 1 argument (3 given)","name":"exceptions.TypeError","arguments":["get_value_to_website() takes exactly 1 argument (3 given)"]}}

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

2 follower(s)


Asked: 10/15/16, 2:32 AM
Seen: 1386 times
Last updated: 5/3/17, 2:47 AM