models.py这是我的专辑和歌曲类的视图文件。
class Album(models.Model):
artist = models.CharField(max_length=250)
album_title = models.CharField(max_length=500)
genre = models.CharField(max_length=250)
album_logo = models.FileField()
def __str__(self):
return self.album_title + '-' + self.artist
class Song(models.Model):
song = models.ForeignKey(Album, on_delete=models.CASCADE)
file_type = models.CharField(max_length =10)
song_title = models.CharField(max_length=250)
#is_favorite = models.BooleanField(default=False)
def __str__(self):
return self.song_title
views.py这是我删除歌曲的视图文件
def delete_songs(request, album_id):
if request.method == "GET":
下面的代码中有两个问题:
def delete_songs(request, album_id):
if request.method == "GET":
您正在提供
album_id
,但您没有尝试删除相册。您应该提供song_id
,以便您可以删除歌曲。您正在检查请求是否为 GET,但您应该检查请求是否为 POST。每次要添加、更新或删除数据库中的条目时,都应始终检查 POST 请求。
尝试如下操作:
from django.http import HttpResponse
def delete_song(request, song_id):
if request.method == "POST":
song = Song.objects.get(id=song_id)
song.delete()
return HttpResponse("Song deleted successfully!")
如果要删除整个相册,则应使用其他视图。