SQLModel 中的可选类型注释字符串

问题描述 投票:0回答:1

我正在开发一个 FastAPI/SQLModel 项目,由于我们已经弃用了 Python 3.9,所以我将每个

Optional[X]
替换为
X | None

我在输入注释字符串方面遇到问题。

例如,参加这门课

from typing import Optional

class OAuthAccount(SQLModel, table=True):
    __tablename__ = "oauthaccount"
    id: int | None = Field(default=None, primary_key=True)
    user: Optional["User"] = Relationship(back_populates="oauth_accounts")

如果我用

"User" | None
替换最后一个类型提示,我会收到此错误

E   TypeError: unsupported operand type(s) for |: 'str' and 'NoneType'

有什么办法可以解决这个问题,还是我坚持

Optional

谢谢

python fastapi type-hinting sqlmodel
1个回答
0
投票

假设

User
在其他地方定义,只需写
User | None
不带引号:

user: User | None = Relationship(back_populates="oauth_accounts")
© www.soinside.com 2019 - 2024. All rights reserved.