How to call python function in jquery in odoo 11

不打扰是莪最后的温柔 提交于 2019-12-22 06:48:18

问题


Python code:

@api.model
def test_method(self):
    a= 10
    b = 20
    c = a+b
    return c

jQuery:

var Model = require('web.Model');
$(document).ready(function() {
  var test_model = new Model("MyClass");
  test_model.call("test_method").then(function(c) {
    console.log("res ult:" + JSON.stringify(result));
  });
});

Error:

Missing depends,

The above code will is working in odoo 10 but not in odoo 11. I want to know how to call a python function from JS.


回答1:


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 }



回答2:


@api.model
def my_method(self):
    a= 10
    b = 20
    c = a+b
    return c

var MessageOfTheDay = Widget.extend({
    template: "MessageOfTheDay",
    start: function() {
        var self = this;
        this._rpc({
            model: 'pettoys.pettoys',
            method: 'my_method',       
            args: [], //Now gives the value of c.

        }).then(function(res){
            console.log(res);   //it gives object

        });
    },
});


来源:https://stackoverflow.com/questions/47194770/how-to-call-python-function-in-jquery-in-odoo-11

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!