当我尝试从jquery POST发送数据时,我可以从后端获取它们,js客户端和python django-rest-framework sefializer从后端创建方法
console.log说:
{
"wo_r": [
{
"pk": "17635"
},
{
"pk": "17637"
}
]
}
表单数据显示为dict:
{
"wo_r": [
{
"pk": "17635"
},
{
"pk": "17637"
}
]
}:
django shell阅读:
<QueryDict: {'{\n "wo_r": [\n {\n "pk": "17635"\n },\n {\n "pk": "17637"\n }\n ]\n}': ['']}>
为什么发送的数据得到了这个&#34;:&#34;最后?
这是javascript部分:
function creaol(indirizzo,val) {
$.ajax({
url: indirizzo,
type: 'POST',
dataType:'json',
global: false,
data : val,
// data : {'wo_r':[
// {"pk": "17629"}, {"pk": "17630"},{"pk": "17631"}
// ]},
success: function(result) {
// Do something with the result
}
});
}
var dati = JSON.stringify(dict, null, 2);
creaol(indirizzo, dati );
答案 0 :(得分:0)
您收到的数据有误,请查看Querydict。
<QueryDict: {'{\n "wo_r": [\n {\n "pk": "17635"\n },\n {\n "pk": "17637"\n }\n ]\n}': ['']}>
JSON是字典键,值是空列表['']。 尝试使用这样的ajax调用传递数据:
data : {"wo_r": [{"pk": "17629"}, {"pk": "17630"},{"pk": "17631"}]}
并在django视图中将数据读取为request.data Django Rest Frameword request parsing
还要输入你的ajax调用属性contentType:'application / json'。