drf-optionalfields

Fine tuning for serialized fields


Keywords
django, django-rest-framework
License
MIT
Install
pip install drf-optionalfields==0.9.14

Documentation

Django REST framework OptionalFields

drf-optionalfields gives you the flexibility to specify which fields you want to serialized.

There are two mixins available: OptionalFieldsMixin: Which allows you to set some optional fields. These fields can be requested via GET params DynamicFilterMixin: Which allows you to specify only the fields you need.

from rest_framework.serializers import ModelSerializer
from drf_optionalfields import OptionalFieldsMixin

class MyModelSerializer(OptionalFieldsMixin, ModelSerializer):
    class Meta:
        model = SomeModel
        fields = ("id", "username", "address", "full_name")
        optional_fields = ("address", "full_name")
# or combined with DynamicFilterMixin
class MyModelSerializer(OptionalFieldsMixin, DynamicFilterMixin, ModelSerializer):
    class Meta:
        model = SomeModel
        fields = ("id", "username", "address", "full_name")
        optional_fields = ("address", "full_name")
# You want to see an "address" you have set in the Meta:
GET /users/1/?fields=address

# You want only to return "username":
GET /users/1/?filter=username

# You want only to return the optional "full_name":
GET /users/1/?fields=full_name&filter=username

Thanks to Wim Glen for providing great bootstrap code with <https://github.com/wimglenn/djangorestframework-queryfields>(djangorestframework-queryfields)