template get_context_data generic based django django-views django-class-based-views

django - get_context_data - Redirigir a principal después de eliminar un objeto con la vista genérica DeleteObject



django login class based view (1)

Digamos que tengo dos modelos, Libro y Página:

class Book(models.Model): pass class Page(models.Model): book = models.ForeignKey(Book)

Necesito eliminar una página y ser redirigido al libro específico al que pertenecía la página. Para lograr esto, hago una vista basada en clase para eliminar la página:

class PageDeleteView(DeleteView): model = Page def get_success_url(self, **kwargs): return reverse_lazy(''book_detail'', self.book.pk)

El problema es que, dado que el objeto se elimina antes de llamar a get_success_url, este método falla y obtengo un error 404.

¿Cómo podría hacerlo?

Actualizar:

Siguiendo la idea de @DrTyrsa, lo he logrado anulando el método de eliminación, por lo que la clase sería la siguiente:

reverse_lazy = lambda name=None, *args : lazy(reverse, str)(name, args=args) class PageDeleteView(DeleteView): model = Page def get_success_url(self, **kwargs): return reverse_lazy(''book_detail'', self.book.pk) def delete(self, request, *args, **kwargs): self.book_pk = self.get_object().book.pk return super(PageDeleteView, self).delete(request, *args, **kwargs)