SQLAlchemy与标准类型的关系

时间:2019-02-25 22:12:01

标签: python sqlalchemy

我有一个类System,其属性nodeint的列表:

class System:
    def __init__(self, node):
        self.node = node

# Instantiate as:
sys = System([2,3,4])

我想使用SQLAlchemy来存储它,看来最好的方法是通过ORM using a class to represent the list element type,以便您可以将列表存储在它自己的表中。这将需要以下内容:

class System(Base):
    __tablename__ = 'system'
    id = Column(Integer, primary_key=True)
    node = relationship('Node', backref='sys')

    def __init__(self, node):
        self.node = [Node(v) for v in node]

class Node(Base):
    __tablename__ = 'node'
    id = Column(Integer, primary_key=True)
    value = Column(Integer)
    sys_id = Column(Integer, ForeignKey('system.id'))

    def __init__(self, value=None):
        self.value = value

但是用虚拟类来表示每个int似乎很麻烦。此外,该伪类无法与已经编写以期望来自int的{​​{1}}列表的代码一起使用。

是否有一种方法可以告诉SQLAlchemy应该将node的列表node的{​​{1}}属性映射到单独的表?

0 个答案:

没有答案