繁体   English   中英

在我的odoo控制器中接收JSON数据

[英]reciving JSON data in my odoo controller

我使用Ext.Ajax.request将数据从extJS文件发送到我的odoo控制器,如下所示:

Ext.Ajax.request({
    url : '/serviceAP/fun',
    headers :{
         'Content-Type' : 'application/json'
    },
    method : 'POST',
    jsonData : {"params":
          {"cat" : "cat4",
           "date" : "02/11/2015",
           "notes" : "this notes 4"}
         }
 })

控制器是这样的:

@ http.route('/ serviceAP / fun',type =“ json”,auth ='public',网站= True)

def func_test(self,**args):
    http.request.env['sap.orders'].create({"cat": args['cat'], "order_date": args['date'],
                                          "notes": args['notes']})

    return None

它工作正常,没有任何问题,但是现在我想添加许多参数(cat5,cat6,...,catn),所以我需要使用一个JS数组,我不知道如何处理它,我尝试了很多事情,但是没有结果,因为此方法仅对一个json元组是正确的,我想知道如何在两侧odoo中对其进行处理(odoo controller / js return)

我发现它使它,我们应该创建这样的字典的字典:

val = {}
val[0]={
 "cat": "cat4",
 "date": "02/11/2015",
 "notes": "this notes 4"
};
val[1]={
  "cat": "cat5",
  "date": "02/11/2015",
  "notes": "this notes 5"
};

在我们应该使用params键将其插入jsonData之后

jsonData : {"params":val}

我们直接在控制器中使用它:

i=0
while i < len(args):
   http.request.env['sap.orders'].create({"cat": args[str(i)]['cat'],  "order_date": args[str(i)]['date'],"notes": args[str(i)]['notes']})
   i = i+1

我希望它能对您有所帮助,谢谢:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM