【FastAPI】モデルとスキーマの属性名は揃えよう
ただのメモ・・・
FastAPIの公式チュートリアルにあるけれど、Pydanticでのバリデーションや自動型変換をしてくれるモデル(クラス)定義をスキーマと呼び、SQLAlchemy側でDBにマッピング(ORM)されるオブジェクトのモデル(クラス)定義をモデル、と使い分けてます。
この辺は、どこかの記事にも書きましたが、今回はエラーがなかなか抜けなかったので、備忘録がてら走り書き・・・
どうも、モデルの属性名とモデルからインスタンス生成するためにパラメータを渡す際に経由しているスキーマの属性名が一致していなかったために、Typeerrorが発生していた模様。
例えば、Pydantic側のスキーマ定義に
UserSchema(userId, userName)
SQLAlchemy側のモデル定義に
User(user_id, user_name)
とかにしていると、pydanticのスキーマインスタンスからdictを生成し、そのdictをモデルのパラメータとして渡す際に、エラーが出るみたいなので、属性名は揃えた方が無難です、というメモ
この記事が気に入ったらサポートをしてみませんか?