我是django的新手,我在这里做错了什么?我想从相册中删除一首歌,我想将其重定向到相册详情页面。
class SongDelete(DeleteView):
model = Song
album_id = Song.album.pk
success_url = reverse_lazy('music:detail', args=[album_id])
答案 0 :(得分:0)
您无法访问Song.album
,因为该视图不知道这里的当前Song
是哪个。
您可以使用get_object
方法并将其覆盖为get_success_url
:
from django.urls import reverse
class SongDelete(DeleteView):
model = Song
def get_success_url(self):
album = self.object.album
return reverse('music:detail', kwargs={'album_pk': album.pk})
self.object
现在是您要删除的特定对象(Song
)。现在您可以访问其album
属性。
注意:将'album_pk'
密钥替换为music:detail
网址中指定的密钥。