如何解决我想向 sql-alchemy 添加只读成员,但尝试失败
我想向只读的 sql-alchemy-class 添加一个成员。 目前,这些类是通过在运行时检测其值的数据类实现的。
以下代码片段来自实际项目,为清晰起见略有编辑。
article_table = Table('article',BackendMeta.metadata,autoload_with=backend_engine)
@BackendMeta.registry.mapped
@dataclass
class Article(BackendDecorator):
__table__ = article_table
__article_id: int = field(init=False,default=article_table.c.article_id)
primary_topic: PrimaryTopic
secondary_topics: List[SecondaryTopic]
__mapper_args__ = {
"properties": {
"secondary_topics": relationship("SecondaryTopic",secondary=article_secondary_topic_assignment,backref='articles'),}
@BackendMeta.registry.mapped
@dataclass
class SecondaryTopic(BackendDecorator):
__table__ = secondary_topic_table
__secondary_topic_id: int = field(init=False,default=secondary_topic_table.c.secondary_topic_id)
name: str
第二个类缺少成员“articles”,但该成员是通过映射声明的。 我想将此成员添加到数据类,但它应该是只读的。添加此成员将提高清晰度并有助于自动完成。
我尝试了混合映射,它不起作用,以及来自 sql-alchemy 的验证器-装饰器,它也不起作用。
我们团队中的所有人都是第一次使用 sql-alchemy,因此数据类解决方案可能是一个死胡同。这是我们将表定义(在原始 sql 中完成)与 orm 分开的尝试。如果有更好的方法来实现这一点,我们不胜感激。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。