Python 声明表上的SQLAlchemy多对多关系
我以声明方式定义了以下表格(非常简化的版本): 配置文件通过多对多关系链接到问题。在链接表(答案)中,我需要为答案存储一个值 文档中说我需要使用关联对象来实现这一点,但这让我感到困惑,我无法让它工作 如何使用Answer作为中间表来定义概要文件和问题表的多对多关系 文档上说我需要使用 执行此操作的关联对象,但 这让我困惑,我无法理解 工作 对。Answer类是您的关联对象,因为它映射到关联表“Answer” 我如何定义多对多 配置文件和 使用答案作为答案的问题表 中间表 您在问题中提供的代码是正确的。它只需要关于ORM级别的关系的附加信息:Python 声明表上的SQLAlchemy多对多关系,python,sqlalchemy,Python,Sqlalchemy,我以声明方式定义了以下表格(非常简化的版本): 配置文件通过多对多关系链接到问题。在链接表(答案)中,我需要为答案存储一个值 文档中说我需要使用关联对象来实现这一点,但这让我感到困惑,我无法让它工作 如何使用Answer作为中间表来定义概要文件和问题表的多对多关系 文档上说我需要使用 执行此操作的关联对象,但 这让我困惑,我无法理解 工作 对。Answer类是您的关联对象,因为它映射到关联表“Answer” 我如何定义多对多 配置文件和 使用答案作为答案的问题表 中间表 您在问题中提供的代码是正
from sqlalchemy.orm import relationship
...
class Profile(Base):
__tablename__ = 'profile'
...
answers = relationship("Answer", backref="profile")
...
class Question(Base):
__tablename__ = 'question'
...
answers = relationship("Answer", backref="question")
...
另外,您不应该在答案的init函数中设置profile\u id和question\u id的值,因为ORM负责根据您对对象的关系属性的分配相应地设置它们
您可能对阅读感兴趣,尤其是关于的部分。阅读有关的内容也可能有帮助。编辑以修复文档的断开链接。这看起来不太正确。您的答案看起来只是通过多对一关系将每一方链接到关联表。这里没有提到多对多,即以下用法意味着orm级别的多对多:Profile。questions@ZoranPavlovic打开旧伤口,但在直接多对多关系中使用
Answer
作为次要的问题是Answer
包含元信息,或不是两个表之间外键的一部分的列。
from sqlalchemy.orm import relationship
...
class Profile(Base):
__tablename__ = 'profile'
...
answers = relationship("Answer", backref="profile")
...
class Question(Base):
__tablename__ = 'question'
...
answers = relationship("Answer", backref="question")
...