Как удалить данные дочерней модели в случае on_delete=models.PROTECT?

Предположим, у меня есть две модели Meeting и Call_Type и между ними существует отношение ForeignKey, как показано ниже.

class Meeting(SoftDeleteModel):
    name = models.call_type(CallType, on_delete=models.PROTECT, null=True)

И:-

class CallType(models.Model):
    type = models.CharField(max_length=256, null=False, blank=False, unique=True)

Теперь я по ошибке удалил данные из таблицы meeting с помощью Meeting.objects.all().delete(), и при попытке удалить данные модели CallType я получаю следующую ошибку:-

ProtectedError: ("Cannot delete some instances of model 'CallType' because they are referenced through protected foreign keys: 'Meeting.call_type'.", {<Meeting: Meeting object (1)>, <Meeting: Meeting object (2)>, <Meeting: Meeting object (3)>, <Meeting: Meeting object (4)>, <Meeting: Meeting object (5)>, <Meeting: Meeting object (6)>, <Meeting: Meeting object (7)>, <Meeting: Meeting object (8)>, <Meeting: Meeting object (9)>, <Meeting: Meeting object (10)>, <Meeting: Meeting object (11)>, <Meeting: Meeting object (12)>})

Есть ли способ удалить данные модели CallType.

Заранее спасибо. Надеюсь получить от вас ответ в ближайшее время.

Поскольку ссылка на внешний ключ является защищенной, необходимо сначала удалить объекты, ссылающиеся на этот объект:

calltype_to_delete = CallType.objects.get(pk=<some_calltype_pk>)

Meeting.objects.filter(name=calltype_to_delete).delete()

или, если вы хотите сохранить данные о собрании, вы можете установить их внешние ключи в None, поскольку вы разрешили это, используя null=True:

calltype_to_delete = CallType.objects.get(pk=<some_calltype_pk>)

Meeting.objects.filter(name=calltype_to_delete).update(name=None)
<<<Только после этого можно удалить объект

: CallType

calltype_to_delete.delete()
Вернуться на верх