Simple plugin for DRF to customise output
Consider this starting code:
class UserSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = User exclude = ('date_joined', 'password') class BaseViewSet(viewsets.ModelViewSet): queryset = User.objects.all() serializer_class = UserSerializer
Now add some salt:
class UserSerializerShort(serializers.HyperlinkedModelSerializer): class Meta: model = User fields = ('email', 'first_name', 'last_name') class DynamicSerializerViewSet(DynamicSerializerMixin, BaseViewSet): serializers_fieldsets = {'light': ('last_name', 'first_name'), 'short': UserSerializerShort}
this allows queries like:
- /users/? - /users/?+serializer=std - /users/?+serializer=light - /users/?+serializer=short
... and now a bit of pepper:
class DynamicSerializerViewSet(DynamicSerializerMixin, BaseViewSet): serializers_fieldsets = {'light': ('last_name', 'first_name'), 'short': UserSerializerShort, 'dynamic': DynamicSerializer('last_name', 'first_name', 'is_active')}
this allows queries like:
- /users/? - /users/?+serializer=dynamic&+fields=email,last_name
Stable | |||||
Development | |||||
Project home page: | https://github.com/saxix/drf-dynamic-serializer | ||||
Issue tracker: | https://github.com/saxix/drf-dynamic-serializer/issues?sort | ||||
Download: | http://pypi.python.org/pypi/drf-dynamic-serializer/ | ||||
Documentation: | https://drf-dynamic-serializer.readthedocs.org/en/latest/ |