Определение абстрактной базовой модели, на которую можно ссылаться в другой модели в 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 на какой-то другой? Пожалуйста, посоветуйте