[英]one-to-one relationships with sqlmodel
在完成SQLModel教程之后,我不記得看到任何關於如何使用Relationship
屬性實現 1:1 關系的內容。
我找到了 SQLAlchemy 的文檔,但目前尚不清楚這如何適用於 SQLModel。
代碼示例:如何強制 User 和 ICloudAccount 具有 1:1 關系?
class User(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
name: str
icloud_account_id: Optional[int] = Field(default=None, foreign_key="icloudaccount.id")
icloud_account: Optional["ICloudAccount"] = Relationship(back_populates="users")
class ICloudAccount(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
user_name: str
users: List[User] = Relationship(back_populates="icloud_account")
您可以關閉列表功能以允許 SQLModel 將外鍵作為一對一。 您可以使用 SQLalchemy 關鍵字uselist
class User(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
name: str
icloud_account_id: Optional[int] = Field(default=None, foreign_key="icloudaccount.id")
icloud_account: Optional["ICloudAccount"] = Relationship(back_populates="user")
class ICloudAccount(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True)
user_name: str
user: Optional["User"] = Relationship(
sa_relationship_kwargs={'uselist': False},
back_populates="icloud_account"
)
我用逆向工程師在 MySQL 中檢查了這個答案,仍然顯示一對多
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.