我试图用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,只需按原样传入。答案 0 :(得分:2)
您不需要对data
进行JSON编码,因为您在视图中没有使用JSON做任何事情。只需将您的字典直接传递给data
:
response = requests.post(url, data=data, headers=headers)