Open2
Pydantic(v2)でリレーション先の項目をセットさせたい。

セットしたい項目がリレーションの先にあるケース
こういうスキーマがあり、
class User:
id: int
email: str
name: str
DBのモデルは、UserとAuthに分離されているイメージ
class AuthDB:
id: int
email: str
class UserDB:
id: int
name: str
auth: AuthDB
auth_id: int
UserDBをjoinでfetchする前提で、User.emailにuser.auth.email
を自動的にセットさせたい。

validation_alias
でOK
オブジェクトパスは AliasPath
で実現
from pydantic import AliasPath
email: str = Field(validation_alias=AliasPath("user", "auth", "email"))