SQLAlchemy多对多关系:从关联表中选择值
我试图查询具有以下模式的多对多关系SQLAlchemy多对多关系:从关联表中选择值,sqlalchemy,flask-sqlalchemy,Sqlalchemy,Flask Sqlalchemy,我试图查询具有以下模式的多对多关系 class ParentModel(db.Model): __tablename__ = 'parents' id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid4) first_name = db.Column(db.String(30)) last_name = db.Column(db.String(30)) phone_no = db.
class ParentModel(db.Model):
__tablename__ = 'parents'
id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid4)
first_name = db.Column(db.String(30))
last_name = db.Column(db.String(30))
phone_no = db.Column(db.String(12))
children = db.relationship('ParticipantModel', secondary='participant_parent')
class ParticipantModel(db.Model):
__tablename__ = 'participants'
id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid4)
subject_id = db.Column(db.Integer)
first_name = db.Column(db.String(30))
last_name = db.Column(db.String(30))
parents = db.relationship(ParentModel, secondary='participant_parent')
class ParticipantParentModel(db.Model):
__tablename__ = 'participant_parent'
id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid4)
relationship = db.Column(db.String(20)) # I want this value along with parents dataset
participant_id = db.Column(UUID(as_uuid=True), db.ForeignKey('participants.id'), primary_key=True)
parent_id = db.Column(UUID(as_uuid=True), db.ForeignKey('parents.id'), primary_key=True)
parents = db.relationship(ParentModel, backref=db.backref('parent_assoc'))
participant = db.relationship(ParticipantModel, backref=db.backref('participant_assoc'))
class ParentSchema(ma.SQLAlchemyAutoSchema):
class Meta:
model = ParentModel
include_fk = True
class ParticipantSchema(ma.SQLAlchemyAutoSchema):
class Meta:
model = ParticipantModel
include_fk = True
parents = ma.Nested(ParentSchema, many=True)
我正在使用以下查询获取参与者和家长的详细信息,但是我无法清楚地了解如何在家长结果集中显示/检索ParticipantParentModel.relationship
值
participant\u p1=ParticipantModel.query.filter\u by(first\u name='p1').first()
任何关于我是否需要改变我的模式或方法的建议都将不胜感激
{
"id": "272ab0f5-bde7-4759-ac0a-3928ef8a5103",
"first_name": "p1",
"subject_id": 1,
"last_name": "l1",
"parents": [
{
"id": "b7c32df0-4956-4217-9aa6-cb0960b29c65",
"first_name": "parent1",
"last_name": "last1",
"mobile_no": "None"
// need to show this parents relation to the child that is stored in association table
},
{
"id": "bc9e5fab-89b7-4624-8a20-c7cc444e3ae8",
"first_name": "parent1",
"last_name": "last1",
"mobile_no": "None"
// need to show this parents relation to the child that is stored in association table
}
]
}