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":
答案 0 :(得分:1)
以下代码中存在两个问题:
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!")
如果要删除整个相册,则应使用其他视图。