Django在rest-framework中列出反序列化
发布时间:2020-12-20 13:33:08 所属栏目:Python 来源:网络整理
导读:我正在尝试实现RESTful Web服务. 在我尝试使用post请求中的对象反序列化列表之前,一切进展顺利.我的代码是这样的: #serializers.pyclass ResultSerializer(serializers.ModelSerializer): class Meta: model=test_result fields=('id','label')#views.pycla
我正在尝试实现RESTful Web服务.
在我尝试使用post请求中的对象反序列化列表之前,一切进展顺利.我的代码是这样的: #serializers.py class ResultSerializer(serializers.ModelSerializer): class Meta: model=test_result fields=('id','label') #views.py class results(APIView): """ Post the results for a test set. """ permission_classes = (permissions.IsAuthenticated,) def post(self,request,pk,format=None): ser=ResultSerializer(data=request.DATA) for i in range(len(ser.data)): if ser.data[i].is_valid(): entry=test_result(user=User.objects.get(username=request.user.username),test_id=Detail.objects.get(test_id=pk),id=Article.objects.get(id=ser.data[i]['id']),label=ser.data[i]['label']) entry.save() #I use a test_result table in my database to save things return Response(ser.data[i],status=status.HTTP_201_CREATED) return Response(ser.errors,status=status.HTTP_400_BAD_REQUEST) 我用来测试的curl命令是: curl -v -H "Accept: application/json" -H "Content-type: application/json" --user plao:1234 -X POST -d '[{"id":23401853,"label":1504},{"id":23401853,"label":1505}]' http://127.0.0.1:8000/tests/uploadResults/1/ 我用简单的帖子测试了我的代码(没有索引),它工作正常.但是,当我尝试发布列表时,我不能. # TODO: error data when deserializing lists 代码有问题吗?有什么建议可以使用吗?在最终版本中,用户将发布类似下面的字符串,但我尝试逐步实现: {"documents": [{"id":[Label1,...,LabelN]},....,{"id":[Label1,..,LabelM]}]} 如果我能处理清单,我将能够处理那种json. 解决方法
您应该查看讨论组中的这个线程,该线程处理批量更新:
https://groups.google.com/forum/#!topic/django-rest-framework/uJA1kuUO9gc/discussion (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |