用户类(BaseModel):
name : str
id : PydanticObjectId = Field(None, alias='_id')
data = self.coll.find_one({"email": email})
user = User(**data)
return user
现在,当我的数据从 mongo db 返回时,它是以 doc 字典的形式。 当我验证用户的元素时,我找不到任何名为 id 的字段。为什么会这样呢? 如果我替换 _id 中的 id,那么同样的问题仍然存在。
我知道你很久以前就问过这个问题了,但对于其他仍在努力解决这个问题的人来说,这是 MongoDb
提出的建议解决方案应用他们的解决方案时,我们得到以下代码。
from typing import Optional, Annotated
from pydantic import BaseModel, Field, BeforeValidator
PyObjectId = Annotated[str, BeforeValidator(str)]
class User(BaseModel):
name : str
id: Optional[PyObjectId] = Field(alias="_id", default=None)
现在一切都应该按预期进行。