djangorestframework-queryfields

raw JSON →
1.1.0 verified Fri May 01 auth: no python

A Django REST Framework extension that allows API consumers to request a subset of fields via query parameters (e.g., ?fields=id,name). Current version: 1.1.0. Maintenance cadence: low, with one release since its initial launch.

pip install djangorestframework-queryfields
error ModuleNotFoundError: No module named 'djangorestframework_queryfields'
cause Incorrect module name used in import.
fix
Use 'from drf_queryfields import QueryFieldsSerializerMixin'.
error AttributeError: 'MySerializer' object has no attribute 'fields_filtered'
cause Serializer does not include QueryFieldsSerializerMixin as the first base class.
fix
Change class MySerializer(serializers.ModelSerializer) to class MySerializer(QueryFieldsSerializerMixin, serializers.ModelSerializer).
gotcha The mixin must be placed leftmost in the inheritance chain before the DRF serializer class. Otherwise, the field filtering will not work.
fix Always ensure QueryFieldsSerializerMixin is the first base class: class MySerializer(QueryFieldsSerializerMixin, serializers.ModelSerializer):
gotcha The package module name is 'drf_queryfields', not 'djangorestframework_queryfields' or 'rest_framework_queryfields'. Common import mistakes lead to ModuleNotFoundError.
fix Use 'from drf_queryfields import QueryFieldsSerializerMixin'.

Basic usage of QueryFieldsSerializerMixin to allow field selection via query parameters.

from drf_queryfields import QueryFieldsSerializerMixin
from rest_framework import serializers

class MySerializer(QueryFieldsSerializerMixin, serializers.ModelSerializer):
    class Meta:
        model = MyModel
        fields = '__all__'

# View
from rest_framework import generics

class MyListView(generics.ListAPIView):
    serializer_class = MySerializer
    queryset = MyModel.objects.all()

# GET /api/my-model/?fields=id,name