情况如下。我有一个包含两个列表的表,包括与另一个表的关系。一个子条目可以有一个或两个父母(主要是两个;)。父母区分每个家庭的孩子。这个结构是固定的。
现在我想要一个名为 all_children 的列,它直接在同一个表中包含所有家庭的所有孩子(因为直接石墨烯集成)。有两种主要方法:column_property 或 hybrid_property。但不幸的是,所有使用这两种方法的测试,例如简单地将两个列表与 python 连接的幼稚想法都失败了
class Parent(Base):
id = Column(Integer, primary_key=True, autoincrement="auto")
children_family_1 = relationship(Child, backref='child_1', cascade='all, delete', lazy='select', foreign_keys='[Child.ref_1_id]')
children_family_2 relationship(Child, backref='child_2', cascade='all, delete', lazy='select', foreign_keys='[Child.ref_2_id]')
all_children = column_property(children_family_1 + children_family_2)
@hybrid_property
def all_children(self):
return self.children_family_1 + self.children_family_2
@all_children.expression
def all_children(cls):
return select(??)
class Child(Base):
id = Column(Integer, primary_key=True, autoincrement="auto")
ref_1_id = Column(Integer, ForeignKey('parent.id'))
ref_2_id = Column(Integer, ForeignKey('parent.id'))
看来,我实际上没有足够的 sqlalchemy 知识来评估和实施正确的方法。请告诉我,我应该在这个用例中使用哪个以及如何按照描述实现它。提前致谢。