Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

To parse an ObjectId in a pydantic model, you can use the bson.ObjectId object from the pymongo library. Here is an example of a pydantic model using ObjectId:

from bson import ObjectId
from pydantic import BaseModel, validator

class MyModel(BaseModel):
    id: ObjectId

    @validator('id', pre=True, each_item=True)
    def validate_objectid(cls, value):
        return str(value)

In this example, the validate_objectid method is used to convert the ObjectId to a string representation for validation in the pydantic model. You can then use the MyModel class to parse incoming data that includes an ObjectId.

data = {'id': '6165d64a5ec5b5fa5c7e8e5a'}
parsed = MyModel.parse_obj(data)
print(parsed.id) # --> ObjectId('6165d64a5ec5b5fa5c7e8e5a')