Django DRF从POST读json?

时间:2018-01-25 15:29:34

标签: javascript jquery json django django-rest-framework

当我尝试从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 );

1 个答案:

答案 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'。