フォームから得られる配列をシリアル化しようとしています。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の男:))上だけど、私はそれは小さなミスだと確信しています。
は、どのように私が投稿され、配列をシリアライズすることができます(または私はDictのそれを呼び出す必要がありますか?)
完全なトレースは奇妙な何かを含むしていないようですが、私は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"
})
私が使用している:
- ジャンゴ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