Я пытаюсь реализовать поведение, при котором при попытке удалить экземпляр экземпляр не будет удален, но django установит атрибут с именем deleted
в True
.
Однако , когда я пытаюсь определить внешний ключ, я должен установить on_delete
, потому что это требуется. Я установил его на models.PROTECT
. Мой вопрос: будет ли django вызывать мою переопределенную функцию delete
при установке on_delete
на models.PROTECT
?
Вот пример кода:
class BaseModel(models.Model):
deleted = models.BooleanField(default=False)
def delete(self, using=None, keep_parents=False):
self.deleted = True
self.save()
class A(BaseModel):
pass
class B(BaseModel):
a = models.ForeignKey('A', on_delete=models.PROTECT)