SQLAlchemy如何从多对多关系的关联表中获取列值

问题描述 投票:1回答:1

我有“播放列表和曲目”类,并为“播放列表曲目”分配了外键。想要获取播放列表曲目时,一切正常,我使用playlist.tracks。但是现在我还需要获取播放列表轨道的“ id”。如何从关联表中获取“ id”或任何其他列?

playlistsTracks = db.Table('tbl_test_playlisttracks',
                    db.Column('id', db.Integer, primary_key=True),
                    db.Column('playlist_id', db.Integer, db.ForeignKey('tbl_test_playlists.id', ondelete='CASCADE')),
                    db.Column('track_id', db.Integer, db.ForeignKey('tbl_tracks.id'))
                    )



class Track(db.Model):
__tablename__ = 'tbl_tracks'

id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255))
audio_url = db.Column(db.Text)
movie_id = db.Column(db.Integer)
entry = db.relationship('Playlist', secondary=playlistsTracks, backref=db.backref('tracks', lazy='dynamic'))



class Playlist(db.Model):
__tablename__ = 'tbl_test_playlists'

id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255))
user_id = db.Column(db.String(255))
current_rev = db.Column(db.Integer, default=0)
python sqlalchemy many-to-many flask-sqlalchemy
1个回答
0
投票
db.session.query(playlistsTracks).join(Track).all()

db.session.query(playlistsTracks.c.id).join(Track).all()

与其他实体播放列表相同

© www.soinside.com 2019 - 2024. All rights reserved.