我有一个 Pydantic 模型,其中有两个日期(init_date 和 end_date)
在尝试添加到数据库之前,我需要确保 end_date 在 init_date 之后(有必要计算这两个日期的天数增量)。
在这种情况下,您需要使用模型验证器。通过指定 mode="after",我们可以配置一些自定义逻辑,以便在验证基础数据后在模型上运行。
https://docs.pydantic.dev/latest/concepts/validators/#model-validators
一个示例:
from datetime import datetime
from pydantic import BaseModel, model_validator
class MyModel(BaseModel):
init_date: datetime
end_date: datetime
@model_validator(mode="after")
def _validate_dates(self):
if self.init_date > self.end_date:
raise ValueError("init_date must be before end_date")
return self