我的javascript:無法檢索從jQuery的發佈到Django的對象的數組
var postData = {
customer: 'test',
order: 1,
boxes: [
{
"size":"2",
"color":"1",
"colorNumber":"1",
"barCode":"1234567890",
"barCodePic":"",
},
{
"size":"3",
"color":"1",
"colorNumber":"2",
"barCode":"0987654321",
"barCodePic":"",
}
]
}
jQuery.post("http://10.0.1.7:8001/bapi/order/", postData);
我的Python:
print 'Customer:', request.POST.get('customer', None)
print 'Order:', request.POST.get('order', None)
print 'get - boxes:', request.POST.get('boxes', None)
print 'get - boxes[]:', request.POST.get('boxes[]', None)
print 'getlist - boxes[]:', request.POST.getlist('boxes[]')
print 'getlist - boxes:', request.POST.getlist('boxes')
print request.POST
輸出:
Customer: test
Order: 1
get - boxes: None
get - boxes[]: None
getlist - boxes[]: []
getlist - boxes: []
<QueryDict: {u'customer': [u'test'], u'boxes[1][barCode]': [u'0987654321'], u'boxes[0][size]': [u'2'], u'boxes[1][colorNumber]': [u'2'], u'boxes[1][size]': [u'3'], u'boxes[0][colorNumber]': [u'1'], u'boxes[1][color]': [u'1'], u'boxes[0][barCode]': [u'1234567890'], u'boxes[1][barCodePic]': [u''], u'boxes[0][barCodePic]': [u''], u'boxes[0][color]': [u'1'], u'order': [u'1']}>
無論我做讓我我期望的名單。我希望得到一個包含每個'box'對象的字典的python列表。
我一直在建議使用「盒子[]」在JavaScript中的參數名,所以我的文章的數據是:
var postData = {
customer: 'test',
order: 1,
'boxes[]': [
{
"size":"2",
"color":"1",
"colorNumber":"1",
"barCode":"1234567890",
"barCodePic":"",
},
{
"size":"3",
"color":"1",
"colorNumber":"2",
"barCode":"0987654321",
"barCodePic":"",
}
]
}
當試圖說,輸出是:
Customer: test
Order: 1
get - boxes: None
get - boxes[]: [object Object]
getlist - boxes[]: [u'[object Object]', u'[object Object]']
getlist - boxes: []
POST BELOW
<QueryDict: {u'customer': [u'test'], u'boxes[]': [u'[object Object]', u'[object Object]'], u'order': [u'1']}>
你可以在QueryDict中看到,它只是一個包含'[object Object']的unicode字符串列表。實際上沒有對象數據。
這是之前標記爲重複的問題,通過在JavaScript參數名稱中添加[]來解決問題,但正如您在本修訂後的文章中所看到的 - 尚未解決問題。這個問題不同之處在於它是一個對象列表。不只是一個簡單的列表。 – Ben174 2014-09-30 22:36:17