Я использую flask -sqlalchemy для создания RestAPI. Идея состоит в том, чтобы хранить плейлисты с одним или несколькими носителями внутри него. Чтобы связать эти два, я использую отношение «многие ко многим».
Иногда один и тот же носитель будет вставлен дважды в список воспроизведения, но это не удастся, поскольку в таблице отношений уже есть запись.
class Media(db.Model):
__tablename__ = 'media'
id = db.Column(db.Integer, primary_key=True)
medias = db.Table('media_playlist',
db.Column('media_id', db.Integer, db.ForeignKey('media.id'), primary_key=True),
db.Column('playlist_id', db.Integer, db.ForeignKey('playlist.id'), primary_key=True),
)
class Playlist(db.Model):
__tablename__ = 'playlist'
id = db.Column(db.Integer, primary_key=True)
medias = db.relationship('Media',
secondary=medias,
lazy='subquery',
backref=db.backref('playlists', lazy=True))
Связанная ошибка:
UNIQUE constraint failed: media_playlist.media_id, media_playlist.playlist_id
Как бы вы сохранили несколько раз одну и ту же ссылку?
Спасибо, Ром