用于在drf中解析请求和返回响应的独立序列化程序
drf-crud-prox的Python项目详细描述
这个包提供了扩展的django rest框架通用视图和视图集,它们提供了指定 用于读取传入请求和呈现响应的不同序列化程序。
这在您想要的情况下非常方便,例如,让用户发送一个foreignkey属性, 但在响应旁边显示相关对象,而不是仅显示数据库ID。
要求
- python 3.6或3.7(可能也是旧版本)
- Django 2.0或2.1
- django rest framework 3.x
安装
pip install drf-crud-proxy
用法
导入泛型视图并从中为您自己的视图创建子类。指定request_serializer_class和/或 response_serializer_class到视图(都默认为drf自己的serializer_class属性)。
# api/views.pyfromdrf_crud_proxyimportgenericsfromapp.modelsimportMyModelfromapi.serializersimportMyModelCreateSerializer,MyModelSerializerclassMyModelListCreateView(generics.ProxiedListCreateAPIView):queryset=MyModel.objects.all()request_serializer_class=MyModelCreateSerializerresponse_serializer_class=MyModelSerializer
传入的请求用MyModelCreateSerializer处理,响应用MyModelSerializer处理。
如果要在任何情况下自定义数据,请重写get_request_data和/或get_response_data 视图中的方法。
该包还支持所谓的PUT-as-create行为,该行为在其3.0版本中从drf中删除。请注意 用户必须对相应的创建行为(POSTrequest)具有模型权限。
注意:功能PUT-as-create还没有测试。
##许可证
麻省理工学院
drf中的这个功能是我在许多django项目中所需要的,所以希望这能帮助其他人。 太:)
这个包是基于伟大的vintasoftware的drf-rw-serializers(https://github.com/vintasoftware/drf-rw-serializers)包提出的思想构建的。谢谢!