Retrieve details of a specific widget.
A serializer that conditionally includes optional fields based on context.
Optional fields should be listed in Meta.read_optional_fields. To include them in the output, pass a list via context['include_fields'] (for top-level serializers) or context[<nested_path>]['include_fields'] (for nested serializers).
Examples: class ChildSerializer(IncludeOptionalFieldsSerializerMixin, serializers.ModelSerializer): extra = serializers.CharField() class Meta: model = Child fields = ['id', 'extra'] read_optional_fields = ['extra']
class ParentSerializer(IncludeOptionalFieldsSerializerMixin, serializers.ModelSerializer): child = ChildSerializer() expensive = serializers.CharField() class Meta: model = Parent fields = ['id', 'child', 'expensive'] read_optional_fields = ['expensive'] # Top-level usage (includes 'expensive' field) ParentSerializer(instance, context={'include_fields': ['expensive']}).data # Nested usage (includes 'extra' field inside child) ParentSerializer( instance, context={'child': {'include_fields': ['extra']}} ).data