一个Django应用程序,它提供了一个序列化程序mixin,允许您根据提供的操作自定义字段,而无需创建其他序列化程序。
django-rest-action-serializer的Python项目详细描述
django rest操作序列化程序
一个Django应用程序,它提供了一个序列化程序mixin,允许您根据提供的操作自定义字段,而无需创建其他序列化程序。在
安装
使用pip安装包
pipinstalldjango-rest-action-serializer
快速启动
例如,假设您有一个ModelViewSet,您需要在list操作和retrieve操作中显示不同的字段。如果没有django rest action serializer,您将执行以下操作:
^{pr2}$很多代码,对吧?看看用django rest操作序列化器做这件事是多么容易
fromdra.serializersimportActionSerializerclassUserSerializer(ActionSerializer,serializers.ModelSerializer):classMeta:model=Userfields=('url','name','age',)action_fields_map:{'retrieve':{'fields':fields+('email',('stories',StorySerializer(read_only=True,many=True))),'exclude':('url',)}}classUserModelViewSet(ModelViewSet):serializer_class=SerializerForListqueryset=User.objects.all()
因此,您需要做的就是使您的序列化程序类在herit中成为django rest action serializer中的ActionSerializer,并在其元类中设置action_fields_map属性,结构如下:
classMeta:...action_fields_map={'<action name (retrieve, list, delete)>':{'fields':()# All the field you want to display. If You want a custom field, declare it as a Tuple (field name, field type)'exclude':()# All the fields you want to remove from the fields attribute}}
贡献
随时为这个项目做贡献:D只是打开一个问题或拉请求
- 项目
标签: