我有一个视图,它继承自{'data' : { 'field1' : 'value1' ,
'field2' : value2 ,
etc.....
} ,
'errors' : None ,
'message': [{} , {}] ,
'result' : 'OK' ,
}
,并在Django REST框架中设置了模型序列化程序。
当我发送请求时,它返回已创建对象的JSON表示。
我想从响应中包装数据,如下所示:
{{1}}
修改返回数据的最佳位置在哪里?
我尝试创建一个自定义渲染器,如此问题所示:Adding root element to json response (django-rest-framework)但它永远不会被调用。 那是因为它只与GET请求有关而不是帖子吗?
答案 0 :(得分:3)
我认为这种结构不太相关:
OK
,因为请求的状态代码在此处为您提供此信息:200 - >好的,201 - >创建,400 - >不好的要求等... created
方法中有一个特殊的行为,但如果有错误,似乎逻辑上没有数据要发回(也许我错了)。 DRF允许您使用.is_valid()
方法验证数据,您可以使用(例如)return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
或直接使用.is_valid(raise_exception=True)
引发异常。
尽管如此,如果您想保留此结构,可以在您的视图中完成此工作。示例:
return Response({
'data': serializer.data,
'errors': serializer.errors, # `.is_valid()` must be called
'message': [{} , {}],
'result':'OK'
})