gpt4 book ai didi

python - SQLAlchemy 通用关系简单示例

转载 作者:太空狗 更新时间:2023-10-29 22:31:01 25 4
gpt4 key购买 nike

我知道有人问过类似的问题,但我真的很难理解如何在 SQLAlchemy 中实现通用字段。

我有一个权限类/表,我想包含一个可以与任何模型类型相关的字段。

我看过示例和这篇博文 http://techspot.zzzeek.org/2007/05/29/polymorphic-associations-with-sqlalchemy/

是否可以在没有单独表格的情况下建立通用关系?仅仅通过存储 object_type 和 id?沿着这些线的东西:

class Permission(AbstractBase):
user = relationship("User", backref=backref('permissions'))
permission_type = column(String())
object = #The object the permission applies to, could be any type.

我想如果只是一个非常简单的例子,我们将不胜感激!

此外,值得注意的是我来自 Django 背景!

谢谢

最佳答案

您还可以使用 sqlalchemy-utils 包中的 generic_relationship

这是一个 example for their documentation ;

from sqlalchemy_utils import generic_relationship

class User(Base):
__tablename__ = 'user'
id = sa.Column(sa.Integer, primary_key=True)

class Customer(Base):
__tablename__ = 'customer'
id = sa.Column(sa.Integer, primary_key=True)

class Event(Base):
__tablename__ = 'event'
id = sa.Column(sa.Integer, primary_key=True)
object_type = sa.Column(sa.Unicode(255))
object_id = sa.Column(sa.Integer)
object = generic_relationship(object_type, object_id)

关于python - SQLAlchemy 通用关系简单示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17688224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com