我使用Pydantic来验证值,它工作得很好,但我想为我的字段validated_at
授权日期和Null类型,如:
validated_at:Opt[Datetime], Opt[Null]
有办法吗?
目前我的类是这样的:
class Fdes(FdesCreate):
"""FDES Validation Schema for get requests"""
id: PyObjectId = Field(default_factory=PyObjectId, alias="_id")
created_at: Datetime
updated_at: Datetime
validated_at:Opt[Datetime]
archived_at: Opt[Datetime]
我不确定Opt
,Datetime
和FdesCreate
是什么,但是,您可以简单地在模型定义中使用Optional
,例如:
from datetime import datetime
from pydantic import BaseModel
from typing import Optional
class SomeModel(BaseModel):
validated_at: Optional[datetime]
s = SomeModel()
print(s)
# validated_at=None
s = SomeModel(validated_at=datetime.now())
print(s)
# validated_at=datetime.datetime(2021, 9, 6, 20, 25, 13, 173546)
s = SomeModel(validated_at="something_else")
# raises ValidationError:
# pydantic.error_wrappers.ValidationError: 1 validation error for SomeModel
#validated_at
# invalid datetime format (type=value_error.datetime)