Как получить объекты привязанные к таблице SQLAlchemy
Есть 2 таблицы:
class Backpack(db.Model):
__tablename__ = 'back'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(200))
class Apple(db.Model):
__tablename__ = 'apple'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(250))
apple = db.Column(db.ForeignKey('backpack.id'), nullable=False)
Как получить все объекты привязанные к Backpack через ForeignKey?
Ответы (1 шт):
Автор решения: Andrew Holovko
→ Ссылка
- У вас связь не построится, из-за того, что нет таблицы
backpack, следует указатьForeignKey('back.id'). Иначе при создании таблиц будет ошибка. - Вам надо проставить
relation, чтобы можно было черезormк ним потом обращаться
b = session.query(models.Backpack).first()
print(b.apples)
Вот готовые модели:
from sqlalchemy import *
from sqlalchemy.orm import relationship, relation
class Backpack(Base):
__tablename__ = 'back'
id = Column(Integer, primary_key=True)
name = Column(String(200))
apples = relationship("Apple", back_populates="backpack")
class Apple(Base):
__tablename__ = 'apple'
id = Column(Integer, primary_key=True)
name = Column(String(250))
backpack_id = Column(ForeignKey("back.id"), nullable=False)
backpack = relationship("Backpack", back_populates="apples")
Документация на которую я опирался. https://docs.sqlalchemy.org/en/13/orm/basic_relationships.html
Проверено, работает.