转发多对一描述符属性错误 Django
Forward Many to One Descriptor attribute error Django
我是 django 的新手,我做错了什么?我想从专辑中删除一首歌,我想将它重定向到专辑详细信息页面。
class SongDelete(DeleteView):
model = Song
album_id = Song.album.pk
success_url = reverse_lazy('music:detail', args=[album_id])
你不能访问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
url.
中的任何名称
我是 django 的新手,我做错了什么?我想从专辑中删除一首歌,我想将它重定向到专辑详细信息页面。
class SongDelete(DeleteView):
model = Song
album_id = Song.album.pk
success_url = reverse_lazy('music:detail', args=[album_id])
你不能访问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
url.