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

Hi,

I'm using Odoo ONLINE and I need to add the possibility for a user to upload files from a Survey.

It's seems that we can't use Odoo Apps to satisfy the quest but maybe we can counter this situation by collecting the file's input datas with a JS script and send it to store the files in the ir.attachments module and link his ID to the corresponding survey module.


IS IT POSSIBLE TO CREATE A NEW RECORD FROM A JS FILE ? IF SO, HOW ?


Yours faithfully,

RANDRIATAVY Mandresy

頭像
捨棄
最佳答案

Yes, you can call python function with js rpc query and you can pass arguments to the python function.

Example :

rpc.query({
model: 'your.model,
method: 'your_function_name',
args: [agr1, arg2],
}).then(function(result) {

//after success

});

頭像
捨棄
作者

Thanks you I’ll try

最佳答案

Hi,
It is possible to create a record from a js file. There are two ways to do it. 

You can use rpc.query or ajax.jsonRpc.

Using rpc.query, you can define a model and a method inside the model and pass arguments as required to it. The method will be triggered and you can get the value returned by the python function in the .then method of js.

Example

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

rpc.query({
model: 'your_model',
method: 'your_function',
args: [arguments],
}).then(function(result) {
// result will have the value returned from python function.
});

Using ajax.jsonRpc, you can define a route to which the call will be passed. The route will be of type json. 

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

ajax.jsonRpc('/route_name',
'call',{'arg_1': arg_1_value, 'arg_2': arg_2_value})
.then(function (result) {
// result will have the value returned from the python controller.
});

In python,

@route(['/route_name'], type='json', auth='your_authentication')
def route_name(self, **kwargs):
return True

Regards

頭像
捨棄
作者

Thanks for the detailed answer, sounds Aravind was right too.

相關帖文 回覆 瀏覽次數 活動
0
7月 24
1216
12
1月 16
35721
2
6月 25
2384
0
7月 23
2317
1
6月 23
2031