PydanticのBaseModelを継承したClassでvalidateなんて名前でメソッド作ってはいけない
2024-08-08
普通にBaseModel内にvalidate
って名前のクラスメソッドある
(pydantic/main.pyL683)
ちなみにこの名前のメソッドを重複定義すると、FastAPIでAPI立てようとしたときに以下のエラーが出る。
Invalid args for response field! Hint: check that <class ここにクラスのパス> is a valid Pydantic field type. If you are using a return type annotation that is not a valid Pydantic field (e.g. Union[Response, dict, None]) you can disable generating the response model from the type annotation with the path operation decorator parameter response_model=None. Read more: https://fastapi.tiangolo.com/tutorial/response-model/
なおこれはV1の話
(V2ではmodel_validate
ってメソッド名になってるけど、既存のvalidateメソッドも残ってはいるので多分V2でも同様のエラー出る)
スポンサーリンク