Моего Javascript кода выглядит так:словаря в словаре с AJAX для Django
var emotions = {};
$('#emotions').children('#emotionFields').each(function(){
emotions[$(this).find($('.emotion')).val()]=$(this).find($('.value')).val()
});
$.ajax({
url: '../data',
dataType: 'json',
type: 'GET',
data: {action: 'dosomething',word:word,emotions:emotions},
success:function(response){
//something
},
error:function(msg){
//somethin
}
});
Так что перед Аяксом называют мои эмоции объекта выглядит так:
emotions: Object
excitement: "value1"
guilt: "value2"
Когда я прочитал эти данные из djangos request.GET Я вижу
{u'action': u'dosomething',
u'emotions[excitement]': u'value1',
u'emotions[guilt]': u'value2',
u'word': u'word'}
Теперь как преобразовать это в правильном словаре, где я могу получить доступ тыс возбуждение и чувство вины?
Это работает частично, потому что я получаю данные в этой форме, но на бэкэнд мне приходится делать json.loads (request.GET.keys() [0]), чтобы получить эти данные, это выглядит как плохой взлом для меня : D, есть ли лучший способ сделать это? – dnit13
@ dnit13 - Попробуйте выполнить 'data = json.loads (request.body)', а затем попробуйте 'data ['emotions'] ['guilt']' – JRodDynamite
@ dnit13 - Если это не удовлетворяет вашим требованиям, я думаю, это [library] (https://github.com/bernii/querystring-parser) поможет вам. – JRodDynamite