在我的odoo控制器中恢复JSON数据

时间:2018-02-27 22:47:02

标签: javascript python json extjs odoo

我使用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',website = 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)中处理它

1 个答案:

答案 0 :(得分:0)

我找到了 为了使它成为一个我们应该创建这样的字典词典:

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

我希望它有所帮助,谢谢!:)