如何使用Pydantic为一个字段定义两个值类型

2024-09-28 03:20:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Pydantic验证值,它工作得很好,但我想为我的字段validated_at授权日期和空类型,如:

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]

Tags: id类型datetimenullatclassoptpydantic
1条回答
网友
1楼 · 发布于 2024-09-28 03:20:21

我不确定OptDatetimeFdesCreate是什么,但是,您可以在模型定义中简单地使用^{},例如:

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)

相关问题 更多 >

    热门问题