Custom Serializers

You can create custom fields or override validation logic.

Custom Field

Inherit Field and implement to_representation and to_internal_value:

from flask_mongo_drf import Field, ValidationError

class PhoneField(Field):
    def to_internal_value(self, value):
        if not value.startswith('+'):
            raise ValidationError("Phone number must start with '+'")
        return value

Use in Serializer

class UserSerializer(ModelSerializer):
    phone = PhoneField(required=True)