我有一本字典,看起来应该像这个
memberlist = [{"id":50,"firstName":"popo"}]
data = {"member": memberlist, "len":1}
看起来像的看跌请求
url = "http://192.168.100.246:8000/api/group/member/28"
updategroup = requests.put(url,data = data)
这是url 的视图
class SetMember(APIView):
permission_classes=[AllowAny]
def getObject(self,id):
try:
return Group.objects.get(id=id)
except Group.DoesNotExist:
return Response(status = status.HTTP_404_NOT_FOUND)
def get(self,request, id):
group = self.getObject(id)
serializer = setMemberSerializer(group)
return Response(serializer.data)
def put(self,request,id, format='json'):
group = self.getObject(id=id)
serializer = setMemberSerializer(group, data=request.data)
if serializer.is_valid():
# serializer.save()
return Response(serializer.data)
return Response ({'msg':request.data}, status = status.HTTP_400_BAD_REQUEST)
好吧,api不起作用,所以我环顾四周,通过返回request.data作为响应来查看问题所在。原来从响应返回的数据看起来像这个
{"msg":{"member":"firstName","len":"1"}}
当我期望数据看起来像这个
{"msg":[{"id":50,"firstName":"popo"}],"len":"1"}}
然而,当我将发送的数据更改为类似(我在列表中添加了单引号,不再使用变量(
data = {"member": '[{"id":50,"firstName":"popo"}]', "len":1}
一切都很好!
任何帮助或提示都将是很好的
使用DRF时,最好将数据发送为JSON:
updategroup = requests.put(url, json=data)
这样,数据将被转换为JSON字符串,contentType将被设置为"application/JSON"。基于contentType标头,DRF将为您的数据使用适当的解析器。