加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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/

我用简单的帖子测试了我的代码(没有索引),它工作正常.但是,当我尝试发布列表时,我不能.
但是,在shell(python manage.py shell)中尝试代码之后,我注意到框架的代码中有一个TODO:

# 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读