Pydantic,Django Ninja“日超出月份范围”

问题描述 投票:0回答:1

2024-02-29 14:04:15 pydantic.error_wrappers.ValidationError:NinjaResponseSchema 的 1 个验证错误 2024-02-29 14:04:15 回复 2024-02-29 14:04:15 日期超出月份范围(type=value_error)

我有字段“created_at”和“updated_at”。今天我的项目因为他们而崩溃了。如何更新模式中的验证器以跳过这些字段验证?

我尝试了多种方法,但没有任何帮助。我的版本:

django-ninja==0.22.0 pydantic==1.10.14

django validation pydantic django-ninja
1个回答
0
投票

使用 Pydantic 的条件验证根据条件有选择地验证字段:

from pydantic import validator

class MyResponseSchema(Schema):
    created_at: datetime = Field(...)
    updated_at: datetime = Field(...)

    @validator('created_at', 'updated_at', pre=True, always=True)
    def skip_validation_for_specific_dates(cls, v):
        if v == "2024-02-29":  # Example condition
            return v  # Skip validation for this value
        return parse_datetime(v)  # Perform validation otherwise

但在你必须安装 pydantic 之前:

pip 安装 pydantic

© www.soinside.com 2019 - 2024. All rights reserved.