跳至內容
選單
此問題已被標幟
4 回覆
8265 瀏覽次數

Hello together,


i tried to call a python method from javascript site to pass the data of a form view to javascript.

The rpc call is working fine.

However wenn i try to pass the data of the view to Javascript i get false instead of the data-entry.


Console output:

{'employees': [{'id': False, 'lastName': False}, {'id': False, 'lastName': False}, {'firstName': 'Peter', 'lastName': 'Jones'}]}


Test method: 

 @api.model

    def test(self):

        data = {    "employees":[

                                {"id": self.startpoint_id.id, "lastName": self.startpoint_id.name},

                                {"id": self.endpoint_id.id, "lastName": self.endpoint_id.name},

                                {"firstName": "Peter", "lastName": "Jones"}

                                ],

                    "fruit": "Apple",

                    "size": "Large",

                    "color": "Red"

                }

        json_data = json.dumps(data)

        return json_data


RPC call:

 rpc.query({model: 'selection.menu', method: 'test',

            }).then(function(data){

                console.log('works');

                console.log(data);

});


What am I missing here!?
Any help would be much appreciated

頭像
捨棄

Please be more accurate about what you mean with "pass the data of the view to Javascript"?, show the code that do that because otherwise it's not clear what are you trying to do

最佳答案

Hi,

Try like below

rpc.query({
model: 'ir.cron',
method: 'search_read',
domain: [ ],
args: [ ],
}).then(function (data) {});

In the above case we can get all the data from the ir.cron inside the function

rpc.query({
'model': 'ir.cron',
'method': 'run_scheduled_actions',
'args': [ ],
});

Python:

def run_scheduled_actions(self):

In the above case we can get all data from the ir.cron in python self.If you want to filter the data use 'args'.

Regards

頭像
捨棄
作者 最佳答案

@MUHAMMAD Imran Yes var rpc = require('web.rpc'), is integrated in the JS File



To clearify the purpose of this program snippet: 

I have defined a form view to select data from contacts ('res.partner'). Out of this data selection i want to build a json file which contains data and geolocation. Therefore i writted a Python-Method to prepare the data. As next step i want to call the Python method from Javascript to retrieve the Jsondata to JS . Which alt last should be integrated into a Javascript Map Framework.

The testmethod above was only written to check if the orm mapping is working correctly.

Model of the Module

class SelectionMenu(models.Model):

    _name = 'selection.menu'

    _description = 'Run training'


    name = fields.Char(string='Name', required=True, index=True, default=lambda self: ('New'))

    contact_ids = fields.Many2many('res.partner', string="Contacts", required=True)

    startpoint_id = fields.Many2one('res.partner', string="Startpoint")

    endpoint_id = fields.Many2one('res.partner', string="Endpoint")

頭像
捨棄
最佳答案

Have you included

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

rpc.query({ model: 'model.name', method: 'method_name', args: [{ 'arg1': value1, 'arg2': value2, }] }).then(function (returned_value) { // do something }
頭像
捨棄
最佳答案

Your code, looks everything  fine.

You can debug python test method is called. (using print statement in test method).

selection.menu object is another model defined add model name and method name.

Example: rpc.query({model: 'model_name.selection.menu', method: 'test', ..............


頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
1
6月 25
3873
2
11月 22
6126
1
6月 22
8143
1
9月 21
3050
0
8月 21
95