Odoo Help


Odoo 9 website JS help

Md. Tanzilul Hasan Khan
on 10/15/16, 2:32 AM 296 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.


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) {


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


شميم بابو الهندي
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.

شميم بابو الهندي
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

شميم بابو الهندي
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

شميم بابو الهندي
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

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)"]}}

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

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

1 follower(s)


Asked: 10/15/16, 2:32 AM
Seen: 296 times
Last updated: 10/27/16, 1:16 AM