我知道有人问过类似的问题,但我真的很难理解如何在 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/