2014-09-01 14 views
2

我正在創建一個JSON對象並將其推入數組中。Django:ajax POST發送對象數組無法正常工作的數據

var json_array = [] 
    var edit_info = { 
         'name': str_name, 
         'id': str_id, 
        }; 
    json_array.push(JSON.stringify(edit_info)) 

並試圖在POST請求中發送json_array

$.ajax({ 
     dataType: 'JSON', 
     url: req_url, 
     type: req_method, 
     data: {'req_data': json_array}, 
     success: function(data){ 
      console.log(data.message) 
     }, 
     error: function(){ 
      alert("Some error has occured.") 
     } 
    }); 

我從瀏覽器(Chrome)看到奇怪的行爲:它似乎它傳遞兩個數組作爲發佈數據:

req_data[]:{"name":"naveen","id":"11"} 
req_data[]:{"name":"kavi","id":"13"} 

它不應該是這樣嗎?

req_data[]: [{"name":"naveen","id":"11"}', {"name":"kavi","id":"13"}] 

但在views.py request.POST顯示發佈數據,因爲它應該是:

{u'req_data[]': [u'{"name":"naveen","id":"11"}', u'{"name":"kavi","id":"13"}']} 

request.POST['req_data[]']顯示

{"name":"kavi","id":"13"} 

我不知道這裏發生了什麼。任何人?

回答

0

你需要從STR使用QueryDict.getlist方法request.POST,然後反序列化每個列表項與dict:

import json 
data = request.POST.getlist('req_data[]', []) 
data = [json.loads(item) for item in data]