Я делаю аудиоплеер в джанго. Когда я удаляю песни в списке воспроизведения, песня удаляется даже из базы данных Song. Я хотел бы удалить песню только из плейлиста, а не из базы данных песен. Но если песня удаляется из базы данных песен, все ее экземпляры в списках воспроизведения также должны быть удалены.Исходные объекты удаляются при удалении внешнего ключа в модели django
models.py
class Song(models.Model):
song_title = models.CharField(max_length=250)
file = models.FileField(upload_to='/',default = "null")
class Meta:
ordering = ['song_title']
def __str__(self):
return self.song_title
class Playlist(models.Model):
name = models.CharField(max_length = 50)
songs = models.ManyToManyField(Song)
def __str__(self):
return self.name
views.py
def deleteplaylistsong(request):
if request.method == 'POST':
song = (request.POST['song'])
playlist = request.POST['playlist']
s = Song.objects.get(song_title=song)
p = Playlist.objects.get(name=playlist)
p.songs.remove(s)
return HttpResponse("success")
Как насчет «сквозного» во многих местах? –
Удалите его. Если вы не делаете ничего особенного в сквозной модели, нет смысла иметь ее. –
Идея взята из http://stackoverflow.com/questions/4799378/best-way-to-make-a-simple-orderable-playlist-in-django. Есть ли способ сделать это с помощью той же схемы? –