Zohaib Ghafoor Baloch
Zohaib Ghafoor Baloch

Reputation: 63

SQLAlchemy how to get Column values from association table in many to many relationship

I have Playlist and Tracks class and assigned Foreign keys to playlistsTracks. all ok when want to get Playlist tracks i use playlist.tracks. But now i need to also get the 'id' of the playlistsTracks. How can i get the 'id' or any extra column from association table?

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)

Upvotes: 3

Views: 5685

Answers (1)

Thiago A
Thiago A

Reputation: 56

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

or

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

The same for the other entity Playlist

Upvotes: 1

Related Questions