Django DeleteView не перенаправляет на успешный URL после переопределения метода удаления - PullRequest
0 голосов
/ 03 июня 2019

У меня есть модель студента, которая включает внешний ключ пользовательской модели django, я хочу удалить ассоциированного пользователя при удалении студента (на delete=CASCADE делает наоборот), поэтому я переопределяю метод удаления, но после удаления success_url= '/student/' не работает, а URL все еще, например, '/students/delete/323/' и продолжает отправлять pk на URL, когда я не отменяю метод удаления, он работает как талисман.любая идея?

class StudentDeleteView(DeleteView):
    model = Student
    template_name_suffix = '_confirm_delete'
    success_url = '/students/'

    def delete(self, request, *args, **kwargs):
        related_user = Student.objects.get(student_id=kwargs['pk']).user_id
        User.objects.filter(id=related_user).delete()
        return super(StudentDeleteView, self).delete(request, *args, **kwargs)


class Student(models.Model):
    student_id = models.IntegerField()
    user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='students')
    courses = models.ManyToManyField('Course', through='StudentCourse', related_name='students')
    classrooms = models.ManyToManyField('Classroom', through='Register', related_name='students')
    last_modified_date = models.DateTimeField(null=True)
    birth_date = models.CharField(max_length=10, null=True)
    image = models.ImageField(upload_to='profile_image', blank=True)
...