I am trying to parse MongoDB records to a pydantic model but failing to do so for ObjectId From what I understood, I need to setup validator for ObjectId and did try to both extend ObjectId class and add the validator decorator to my class using ObjectId. which I did as follows. from pydantic import BaseModel, validator from bson.objectid import ObjectId class ObjectId(ObjectId): pass @classmethod def __get_validators__(cls): yield cls.validate @classmethod def validate(cls, v): if not isinstance(v, ObjectId): raise TypeError('ObjectId required') return str(v) class User(BaseModel): who: ObjectId class User1(BaseModel): who: ObjectId @validator('who') def validate(cls, v): if not isinstance(v, ObjectId): raise TypeError('ObjectId required') return str(v) data = {"who":ObjectId('123456781234567812345678')} Unfortunately, both "solution" are failing as follows: >>> test = User(**data) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "pydantic/main.py", line 274, in pydantic.main.BaseModel.__init__ pydantic.error_wrappers.ValidationError: 1 validation error for User id field required (type=value_error.missing) >>> test = User1(**data) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "pydantic/main.py", line 274, in pydantic.main.BaseModel.__init__ pydantic.error_wrappers.ValidationError: 1 validation error for User1 who ObjectId required (type=type_error) There is definitely something that I am missing here. Continue reading...