He las siguientes tablas definidas de forma declarativa (versión muy simplificada):sqlalchemy muchos-a-muchos relación de tablas declarativas
class Profile(Base):
__tablename__ = 'profile'
id = Column(Integer, primary_key = True)
name = Column(String(65), nullable = False)
def __init__(self, name):
self.name = name
class Question(Base):
__tablename__ = 'question'
id = Column(Integer, primary_key = True)
description = Column(String(255), nullable = False)
number = Column(Integer, nullable = False, unique = True)
def __init__(self, description, number):
self.description = description
self.number = number
class Answer(Base):
__tablename__ = 'answer'
profile_id = Column(Integer, ForeignKey('profile.id'), primary_key = True)
question_id = Column(Integer, ForeignKey('question.id'), primary_key = True)
value = Column(Integer, nullable = False)
def __init__(self, profile_id, question_id, value):
self.profile_id = profile_id
self.question_id = question_id
self.value = value
perfil está vinculado a la pregunta a través de una relación de muchos a muchos. En la tabla de vinculación (Respuesta) necesito almacenar un valor para la respuesta.
La documentación dice que necesito usar un objeto de asociación para hacer esto pero me confunde y no puedo hacer que funcione.
¿Cómo se define la relación muchos a muchos para las tablas Perfil y Pregunta utilizando Answer como la tabla intermediaria?
Editado para corregir enlaces rotos a la documentación. – rbp
Esto no se ve bien. Su respuesta parece que solo vincula cada lado de la tabla asociativa a través de una relación de muchos a uno. No se menciona a muchos, por ejemplo, el siguiente uso implica muchos a muchos a nivel de orm: Profile.questions –