목차

FastAPI Pydantic

PydanticObjectId

from datetime import datetime
from pydantic import BaseModel
from bson.objectid import ObjectId
 
 
class PydanticObjectId(ObjectId):
    @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 ModelBase(BaseModel):
    id: PydanticObjectId = Field(None, alias='_id')

이렇게 하면 사용할 수 있으나, OpenAPI 사용시 에러 발생

str 타입으로 사용

class ModelBase(BaseModel):
    id: str = None


관련 문서