У меня есть модель студента, которая включает внешний ключ пользовательской модели 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)