Задать вопрос
@kuzmenko_alex

Как получить данные из связаных таблиц (Many To Many, SQLAlchemy)?

Имеются модели со связью многие ко многим (SQLAlchemy):
association_table = Table('association', Base.metadata,
    Column('left_id', Integer, ForeignKey('left.id')),
    Column('right_id', Integer, ForeignKey('right.id'))
)

class Parent(Base):
    __tablename__ = 'left'
    id = Column(Integer, primary_key=True)
    children = relationship("Child",
                    secondary="association",
                    backref="parents")

class Child(Base):
    __tablename__ = 'right'
    id = Column(Integer, primary_key=True)

Получить "всех родителей одного (второго по списку) ребенка" можно таким способом:
parents = session.query(Parent).filter(Parent.children.any(id=2))

А как получить "всех детей одного из родителей"?
  • Вопрос задан
  • 2894 просмотра
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
SilentSokolov
@SilentSokolov
p1 = Parent.query.get(object_id)
print p1.parents


Кажется так (давно не работал), и почитайте про backref.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы