我試圖序列化來自表單的數組。該陣列是這樣的:如何序列化發佈到Django後端的數組
some_id: 12
array1[]:1
array1[]:2
array2[]:5
array2[]:6
,或者因爲它到達request.POST
<QueryDict: {
'array1[]': ['1', '2'],
'array2[]': ['5', '6'], ...
現在,我得到串行很簡單ID工作:some_id = serializers.IntegerField()
,這是偉大的。我測試過它沒有數組,一切都按預期工作。
對於數組,我想我發現了這個串行領域:listfield
我嘗試以下實現:
array1 = serializers.ListField(
child=serializers.IntegerField(min_value=1)
)
這看起來像手動說,它是如何工作的,但似乎只給我下錯誤:
TypeError at /api/myendpoint/ 'int' object is not iterable
我真的不知道我哪裏錯了,也許我在錯誤的軌道(真的不Django的傢伙:)),但我敢肯定,這是一個小錯誤。
所以,我怎麼能序列化發佈陣列(或者我應該稱之爲字典?)
完整的痕跡似乎並沒有被包含什麼奇怪的,但我已經把它提供on pastebin
的數據貼有此jQuery代碼:
var mydata = {
array1: [1,2],
array2: [5,6],
some_id: 12
};
$.ajax({
url: "http://domain.com//api/myendpoint/",
dataType: "json",
data: mydata,
method: "POST"
})
我使用:
- Django的1.10.2
- djangorestframework 3.5.2
- 的jquery 2.1.4
你可以包括完整的追溯? [我剛剛嘗試過](http://pastebin.com/BquZZvmj),並且認爲它沒有從我的測試輸入中獲得正確的值,但我沒有得到錯誤 – Sayse
@Sayse是的,我會添加它的職位! – Nanne
@Sayse'>>> data = {'my_arr []':['1','2']}'? – Gocht