【发布时间】:2014-08-14 03:35:08
【问题描述】:
我已经实现了一个 REST Api (http://www.django-rest-framework.org/),如下所示:
@csrf_exempt
@api_view(['PUT'])
def updateinfo(request, id, format=None):
try:
user = User.objects.get(id=id)
except User.DoesNotExist:
return HttpResponse(status=status.HTTP_404_NOT_FOUND)
if request.method == 'PUT':
serializer = UserSerializer(user, data=request.DATA)
if serializer.is_valid():
serializer.save()
return Response(serializer.data)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
当我通过浏览器更新用户信息时效果很好。 但是我很难使用 Requests (http://docs.python-requests.org/en/latest/) 调用这个 Api。
这是我调用上述 api 的代码:
payload = {'id':id, ...}
resp = requests.put(updateuserinfo_url, data=payload)
这是我收到的回复:
resp.text
{"id": ["This field is required."], ...}
我检查了request.DATA,它似乎是空的。如果有人可以帮助找出我的代码有什么问题,或者如果我遗漏了一些额外的设置/参数来提出这个简单的请求,我将不胜感激。
【问题讨论】:
标签: django python-requests django-rest-framework