Пытаюсь понять как добавить композицию(которую получаю в представлении) в поле модели плейлиста playlist_composition(ManyToManyField). Проблема в том, что как добавить, я понимаю, но в таком случае пропадают все данные, которые содержались там до этого. Как сделать не обновление этого поля в модели, а именно добавление текущей композиции к другим композициям поля? Читал документации, ответа не нашел(если в них есть ответ, дайте пожалуйста ссылку).
views.py
def add_to_playlist(request, composition_id, playlist_id):
playlist = Playlists.objects.get(pk=playlist_id)
composition = Composition.objects.get(pk=composition_id)
if request.method == 'POST':
#место, где не понимаю
return render(request, 'musiccloud/composition_to_playlist.html', {'playlist': playlist})
models.py
class Composition(models.Model):
composition_user = models.ForeignKey(User, verbose_name='Username', on_delete=models.CASCADE, null=True)
composition_envelope = models.ImageField(verbose_name='Envelope', upload_to='photo/%Y/%m/%d', blank=True, null=True)
composition_title = models.CharField(max_length=455, verbose_name='Title', default='NoName', blank=True)
composition_file = models.FileField(verbose_name='Composition file', upload_to='audio')
composition_album = models.ForeignKey(Album, verbose_name='Album', blank=True, on_delete=models.CASCADE, null=True)
composition_date = models.DateTimeField(auto_now_add=True, verbose_name='Song release date', null=True)
composition_singer = models.ForeignKey('Profile', on_delete=models.PROTECT, null=True, verbose_name='Singer')
composition_is_published = models.BooleanField(verbose_name='Released', default=False)
def __str__(self):
return self.composition_title
class Playlists(models.Model):
playlist_user = models.ForeignKey(User, on_delete=models.CASCADE, verbose_name='Username', null=True)
playlist_title = models.CharField(max_length=128, verbose_name='Title', null=True)
playlist_envelope = models.ImageField(verbose_name='Envelope', upload_to='photo/%Y/%m/%d', null=True)
date_playlist = models.DateTimeField(auto_now_add=True, verbose_name='Playlist creation date')
playlist_composition = models.ManyToManyField('Composition', verbose_name='Composition', blank=True)