Как переопределить Django DeleteView без использования абстрактной модели и менеджера

Я пытаюсь мягко удалить запись из моей БД, переопределив метод delete в DeleteView, но это не работает. Атрибут active должен быть установлен в False. Я не могу использовать Abstract model и Manager, потому что моя родительская модель изначально должна иметь атрибут active. мое представление

class PersonDeleteView(DeleteView):
model = Person
template_name = 'contacts/deleteperson.html'
success_url = reverse_lazy('persons')

def delete(self, *args, **kwargs):
        self.object = self.get_object()
        self.object.active = False 
        return HttpResponseRedirect(self.get_success_url())

родительская модель

class AddressEntry(models.Model):

GENDER = (
    ('Male', 'Male'),
    ('Female', 'Female'),
)
gender = models.CharField( max_length= 20, choices=GENDER, default='Male')   
name = models.CharField(max_length=100)
firstname = models.CharField(max_length=100)
birthdate = models.DateField()
active = models.BooleanField(default=True)

def __str__(self):
    return self.name

def soft_delete(self):
    self.active = False
    self.save()

детская модель

class Person(AddressEntry):
parentname = models.CharField(max_length=100)
job =  models.CharField(max_length=100)

Пытались ли вы сохранить экземпляр после его изменения?

def delete(self, *args, **kwargs):
        self.object = self.get_object()
        self.object.active = False
        self.object.save()
        return HttpResponseRedirect(self.get_success_url())
Вернуться на верх