Определение абстрактной базовой модели, на которую можно ссылаться в другой модели в Django

Имея эти модели в Django. Альбом и плейлист как коллекции песен. Библиотека состоит из плейлистов и альбомов. После того, как я определил базовую модель для хранения некоторых общих полей Album и Playlist, возникли некоторые сложности:

class Collection(models.Model):
    title = models.CharField(max_length=64)
    release_date = models.DateField()

    class Meta:
        abstract = True

class Album(Collection):
    pass

class Playlist(Collection):
    is_public = models.BooleanField(default=True)
    is_liked_songs_playlist = models.BooleanField(default=False)
    description = models.TextField(blank=True)

class Library(models.Model):
    collections = models.ManyToManyField("Collection", related_name="libraries")
    # playlists = models.ManyToManyField("Playlist", related_name="libraries")
    # albums = models.ManyToManyField("Album", related_name="libraries", blank=True)

Этот код ошибочен, поскольку Collection является абстрактной. Можно ли как-то изменить этот код, чтобы он работал без изменения Collection из абстрактной в обычную? Я не хочу, чтобы у модели Collection была своя таблица в бд. Может быть, мне нужно изменить тип отношения с ManyToManyField на какой-то другой? Пожалуйста, посоветуйте

Вернуться на верх