当发送到put请求时,字典中的列表不会出现



我有一本字典,看起来应该像这个

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将为您的数据使用适当的解析器。

最新更新