ho le seguenti tabelle definite in modo dichiarativo (versione molto semplificata):SQLAlchemy molti-a-molti sui tavoli dichiarativi
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
profilo è collegato alla prima questione, tramite una relazione molti-a-molti. Nella tabella di collegamento (Risposta) ho bisogno di memorizzare un valore per la risposta.
La documentazione dice che ho bisogno di usare un oggetto di associazione per farlo, ma mi confonde e non riesco a farlo funzionare.
Come si definisce la relazione molti-a-molti per le tabelle Profilo e Domanda utilizzando Rispondi come tabella intermedia?
Modificato per correggere collegamenti interrotti alla documentazione. – rbp
Questo non sembra giusto. Sembra che la tua risposta colleghi solo ciascun lato alla tabella associativa attraverso una relazione molti-a-uno. Non si fa menzione di molti a molti, vale a dire il seguente uso implica molti a molti a livello di orm: Profile.questions –