В ModelFormMixin, который используется BaseUpdateView, в методе get_success_url() есть
url = self.object.get_absolute_url()
соответственно, нам не нужно задавать success_url = reverse_lazy('блаблабла') во вьюхе, а определить get_absolute_url() в модели.
В отличие от этого, DeletionMixin, который используется BaseDeleteView, так не делает, ему нужен именно success_url.
Почему так? Почему не сделать их одинаковыми? Мне пришлось переопределять get_success_url для моего DeleteView, что бы он делал так, как я хочу.
Или я как-то неправильно работаю с success_url во вьюхе? Мне надо вычислять url по ForeignKey, делаю примерно так:
model Child(models.Model):
parent = models.ForeignKey(Parent)
def get_absolute_url(self):
return reverse('parent-detail', kwargs={'pk':str(self.parent.pk)})
Как можно тоже самое сделать в success_url? Я ведь не могу там написать self.parent.pk.