如何在 SQLAlchemy 中设置 relationship 的反向关系?
时间: 2024-11-12 18:32:42 浏览: 24
在 SQLAlchemy 中,为了设置关系的反向关联,你需要使用 `backref` 参数。当你在一个类中定义了一个对另一个类的关系时,`backref` 可以让你在另一个类上自动创建一个引用到第一个类的属性。这里是一个基本的例子:
```python
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import relationship
class Parent(Base):
__tablename__ = 'parent'
id = Column(Integer, primary_key=True)
children = relationship("Child", backref="parent") # 这里设置了反向关系
class Child(Base):
__tablename__ = 'child'
id = Column(Integer, primary_key=True)
parent_id = Column(Integer, ForeignKey('parent.id'))
# 现在,Parent类有一个children属性,Child类有一个parent属性,它们相互关联
```
在这个例子中,`Child.parent` 就是反向关系,它代表了每个孩子关联其父级的 Parent 对象。`backref` 参数还可以接受其他选项,如 `uselist`, `lazy`, `cascade` 等,用于进一步定制反向关系的行为。
阅读全文