sqlalchemy 中的关系
Relation in sqlalchemy
我使用 sqlalchemy ORM 和 pydantic
我有以下简单的 table
class Parent(Base):
__tablename__ = 'parents'
id = Column(Integer, primary_key=True, nullable=False)
children = relationship(
"Child",
backref="parent",
uselist=True
)
class Child(Base):
__tablename__ = 'children'
id = Column(Integer, primary_key=True, nullable=False)
parent.id = Column(Integer, ForeignKey(Parent.id))
age = Column(Integer)
得到 parents 和他们的 children 很容易
但是我怎样才能用年龄过滤 child?
如果你得到下面的,然后用pydantic序列化,所有children都会被嵌套
parents = db.query(Parent).all()
您需要在 parent table 和 child table 之间进行连接,以便对 child.
parents = db.query(Parent).join(Child, Child.parent.id == Parent.id).filter(Child.age < 18).all()
我使用 sqlalchemy ORM 和 pydantic
我有以下简单的 table
class Parent(Base):
__tablename__ = 'parents'
id = Column(Integer, primary_key=True, nullable=False)
children = relationship(
"Child",
backref="parent",
uselist=True
)
class Child(Base):
__tablename__ = 'children'
id = Column(Integer, primary_key=True, nullable=False)
parent.id = Column(Integer, ForeignKey(Parent.id))
age = Column(Integer)
得到 parents 和他们的 children 很容易
但是我怎样才能用年龄过滤 child?
如果你得到下面的,然后用pydantic序列化,所有children都会被嵌套
parents = db.query(Parent).all()
您需要在 parent table 和 child table 之间进行连接,以便对 child.
parents = db.query(Parent).join(Child, Child.parent.id == Parent.id).filter(Child.age < 18).all()