JSからのAJAX呼び出しとサーバー側で複合JSON構造を渡すには、Pythonの「非常によく似た」データ構造として読んでください。Django:QueryDictからJSONオブジェクトの配列を読み取る
私はjsonの書式設定(simplejsonなど)を使用することができますが、私はどういうわけか、自分のケースでは、QueryDict自体が不正形式か再フォーマットされていると感じていますか?
例:
JSONオブジェクトの配列を渡す[{ "ID":1}、{ "ID":2}、{ "ID":3}] DjangoのビューにAJAXを介して、のQueryDict
POST:<QueryDict: {u'json_data[0][id]': [u'1'], u'type': [u'clone'],
u'csrfmiddlewaretoken': [u'69bb3c434ced31ab301ede04bf491ec0'],
u'json_data[1][id]': [u'2'], u'json_data[2][id]': [u'3']}>
json_dataを繰り返し処理するにはどうすればよいですか?私は辞書としてのQueryDictにアクセスして、特定の順序でリストとそれを処理としてjson_data取得できるように
POST:<QueryDict: {u'json_data': [{u'id': [u'1']}, {u'id': [u'2']}, {u'id': [u'3']}]},
u'csrfmiddlewaretoken': [u'69bb3c434ced31ab301ede04bf491ec0'], u'type': [u'clone']>
:
は私の代わりにこのような何かを取得したいだけかもしれないシーケンシャルでそれらを反復処理リストの順序。以下のような 何か::実際には
ret = request.POST
for item in ret['json_data']:
process(item['id'])
プロセス(に入る値)は、キーと値のペアの別の辞書だけではなく数(1,2,3など)
Javascriptの可能性
var test = [{"id": 1},{"id": 2},{"id": 3}];
$.post(
"/insert_tc",
{
json_data: test,
"type": 'clone',
"csrfmiddlewaretoken": $csrf_token
},
function(json) {
//CALLBACK
},
"json"
);
views.py:
def insert_tc(request):
if request.method == 'POST':
ret = request.POST
type = ret['type']
list = ret.getlist(ret)
リストは空を返します
シンプルジェンダンプ、ロード、アイテム、メソッドを取得しようとしましたが、どれも役に立たなかった。
私はjQuery.param(obj、true)を試したこともありますが、それは私が望むものではありません。
複合データ構造をDjango < - > JS via AJAXに渡す方法がありますか?
掲載されたコードは、間違いなくそののQueryDict結果が得られないので何かが、確かに間違っています。それを出力する正確なコードを投稿できますか? –
私はJSコードが正確であることを恐れています。私はJSスニペットと印刷要求の出力をviews.pyから小さな書式で貼り付けてコピーします。 'test'は私が渡しているオブジェクトの配列です。 – rajivRaja
申し訳ありませんが、私の間違いです。下の私の答えを見てください。 –