python runtime_error ai_generated true

PydanticUserError: `@validator` 不能应用于实例方法,请改用 `@field_validator`。

PydanticUserError: `@validator` cannot be applied to instance methods. Use `@field_validator` instead.

ID: python/fastapi-pydantic-v2-validator-removed

其他格式: JSON · Markdown 中文 · English
80%修复率
88%置信度
0证据数
2024-04-18首次发现

版本兼容性

版本状态引入弃用备注
3.x active — — —

根因分析

为 Pydantic v1 编写的代码在 Pydantic v2 下使用了已移除的 `validator` 装饰器。

English

Code written for Pydantic v1 uses the removed `validator` decorator under Pydantic v2.

generic

解决方案

  1. 92% 成功率
    Migrate to field_validator:
    from pydantic import field_validator
    @field_validator('name')
    @classmethod
    def check(cls, v): ...
  2. 85% 成功率
    Use bump-pydantic to automate migration.

无效尝试

常见但无效的做法:

  1. 60% 失败

    FastAPI 0.100+ expects v2; downgrading causes other incompatibilities.

  2. 70% 失败

    Loses validation logic and may accept bad data.