python - SQLAlchemy 通用关系简单示例

标签 python database sqlalchemy

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

相关文章:

python - 在 django admin 为什么 django 添加 ?_changelist_filters 到 url?

python - 未在 sqlalchemy 中提交列更新(sqlalchemy-utils)

mysql - 当我编写 mysql 查询时,无法从多个表中获取准确的数据集

php - 通过 php 确认对 sql 数据库的更改和添加?

python - 使用混合器的自定义类型的 AttributeError

python - 在 Python 中使用 SQL Server 文件流

python - 正则表达式查找单词形式的大数字

python - 从 gdata.gauth.OAuthHmacToken python 对象中检索 token 和 secret

python - 有没有办法获取特定版本 Python 的内在运算符列表?

android - 使用 ContentValues 数组批量插入