Будет ли запущена функция удаления, если для on_delete установлено значение models.PROTECT? - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь реализовать поведение, при котором при попытке удалить экземпляр экземпляр не будет удален, но 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...