2017-03-06 8 views
0

JSONをJSから取得するAJAXリクエストをDjangoのPythonの辞書に変換しようとしていますが、失敗しています。助けてください。Ajax json投稿要求をJqueryからPython/Django辞書に変換する方法

def saveExposureSituation(request): 

#get es data - JSON file 
fromJs = request.POST 

fromJs = json.loads(fromJs) 

JSON object must be string, not QueryDict私が得るすべてである:

myJSON = JSON.stringify(myJsObject); 

// POST - send JSON data to Python/Django server 
$.ajax({ 
    url: "/savemyexposuresituation", 
    type: "POST", 
    datatype: 'json', 
    data: myJSON, 
    async: false, 
    success: function() { 
    alert('Your data is saved :)'); 
    }, 
    error: function() { 
    alert('Error occured :('); 
    } 
}); 
} 

これは、Djangoの側面がある:

この

は、元のJSコードです。私はこのQueryDictを何か他のものにうまく変換しようとしました。

答えて

0

バイトを文字列に変換するには、decode("utf-8")を使用する必要があります。だから、応答にこのrequest.POST.decode("utf-8")

0

request.POSTは、フォームエンコードされたデータ用です。 request.bodyを使用してください。

+0

おかげで、私は試してみました。これで、 "jsonオブジェクトはバイトではなく文字列でなければなりません"というメッセージが表示されます。 – sawic

+0

私は今考え出した。私はこれが必要でした:fromJs = fromJs.decode( 'utf-8') – sawic

+0

ありがとう! – sawic

0

のおかげのようなものにすることができ、完全な答えは次のようになります。

def saveExposureSituation(request): 

    fromJs = request.body 
    fromJs = fromJs.encode('utf-8') 

    #now we can load our JSON from JS 
    fromJs = json.loads(fromJs) 
関連する問題