Python POST请求无法找到数据属性

时间:2015-06-18 05:48:57

标签: python django post

我试图用Python在我的Django REST API中写一个POST请求,但它似乎无法在请求的数据部分找到一个属性。这是处理请求的函数:

 def post(self, request, id, format=None):
    obj = self.get_object_or_404(id)

    operation = request.POST.get('operation', None)
    if operation == None:
        print "Operation was none, uh oh."
        return Response()
    else:
        print "It worked!"
        return Response()

现在这里是jquery中的POST ajax调用。这个有效。 (打印"它有效!")

$.ajax({
  method: 'POST',
  beforeSend: function(xhr) { xhr.setRequestHeader('Authorization', 'Token ' + token)},
  url: url,
  data: {
    'operation':-1,
  },
  success: callback,
  error: function (jqXHR, textStatus, errorThrown) {
    console.log(textStatus);
    console.log(errorThrown);
  }
});

现在这里是Python中的POST调用,或者是我的尝试。 " url"和#34;令牌"变量完全相同:

import json
import requests

url = <Same URL as above>
token = <same token as above>

data = {
    'operation' : -1,
}
headers = {
    "Authorization": "Token " + token,
}
response = requests.post(url, data=json.dumps(data), headers=headers)

这个python请求不起作用 - app api打印&#34;操作没有,呃哦。&#34;为什么会这样?我没有在请求中正确传递我的数据参数吗?

编辑:解决了。不要在数据上调用json_dump,只需按原样传入。

1 个答案:

答案 0 :(得分:2)

您不需要对data进行JSON编码,因为您在视图中没有使用JSON做任何事情。只需将您的字典直接传递给data

response = requests.post(url, data=data, headers=headers)