我有這兩個 Python 類(代表 SQLAlchemy 模型的 Pydantic 模式):
class Role(RoleBase):
id: int
users: list[User] = []
class Config:
orm_mode = True
class User(UserBase):
id: int
date_created: datetime.datetime
profile_image: Optional[str] = None
class Config:
orm_mode = True
我試過用 ForwardRef 做到這一點:
User = ForwardRef('User')
...
users: list[User] = []
或者用引號包裹它:
users: List['User'] = []
但我明白了TypeError: issubclass() arg 1 must be a class。
有沒有辦法在不改變類的宣告順序的情況下實作這一點?
uj5u.com熱心網友回復:
使用時pydantic.ForwardRef,您需要呼叫update_forward_refs具有前向參考的類來更新它們。所以添加
Role.update_forward_refs()
之后User被定義。
如果PEP 649被接受,這一切都將是不必要的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/366294.html
標籤:Python sqlalchemy 快点 皮丹提克
上一篇:如何以安全的方式評估串列索引?
