Извлечение всех песен из базы данных "многие ко многим" в плейлисте
У меня есть структура базы данных для плейлистов и треков.
Код моей базы данных выглядит так:
#table for tracks
db.define_table('track',
Field('artist'),
Field('album'),
Field('title'),
Field('duration', 'float'),
......
)
#table for playlists
db.define_table('playlist',
Field('title')
)
#table for references
db.define_table('playlist_reference',
Field('playlist', 'reference playlist'),
Field('track','reference track')
)
Я создал контроллер, который получает все треки в определенном списке воспроизведения, обращаясь к этим таблицам. Вот как выглядит этот код:
def get_playlist_tracks():
title = request.vars.title
tracks = []
q = (title == db.playlist.title)
#searches the playlist database for the playlist that
#matches the title of the playlist whose tracks I want to retrieve
#and gives me its id
plist_id = db(q).select().first().id
#returns all the references in which that playlist appears
q = (plist_id == db.playlist_reference.playlist)
refs = db(q).select(db.playlist_reference.ALL)
#for each reference I get the track id and append to tracks array
for i, r in enumerate(refs):
t_id = r.track
q = (t_id == db.track.id)
track = db(q).select(db.track.ALL)
print track
tracks.append(track)
return response.json(dict(
tracks=tracks)
)
По какой-то причине этот код не возвращает то, что я ожидаю, это список треков из этого плейлиста.
В чем может быть проблема?
Спасибо