Перенаправление к родителю после удаления объекта с общим представлением DeleteObject

Допустим У меня есть две модели, Книга и Страница:

class Book(models.Model):
    pass

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

Мне нужно удалить страницу и перенаправить на конкретную книгу, к которой принадлежала страница. Для этого я создаю представление на основе класса для удаления страницы:

class PageDeleteView(DeleteView):
    model = Page

    def get_success_url(self, **kwargs):
        return reverse_lazy('book_detail', self.book.pk)

Проблема в том, что, поскольку объект удаляется до вызова get_success_url, этот метод не работает, и я получаю ошибку 404.

Как я мог это сделать?

Обновление:

Следуя идее @DrTyrsa, я добился этого, переопределив метод удаления, поэтому класс будет следующим:

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)
5
задан jantoniomartin 17 May 2012 в 09:18
поделиться