Python 3.6 и Django 1.11.7.
У меня две модели выглядят следующим образом:
class User():
name = models.CharField()
...
class UserInfo():
user = models.OneToOneField(User, on_delete=models.PROTECT, primary_key=True, related_name='info')
Я хотел удалить какой-то пользовательский экземплярA, и я явно удалил информацию пользователя A.Но когда я попытался удалить пользовательскую модель user.delete()
, я получил ProtecedError
:
ProtectedError: ("Cannot delete some instances of model 'User' because they are referenced through a protected foreign key: 'UserInfo.user'", <QuerySet [<UserInfo: UserInfo object>]>)
Затем я попытался поместить удаление внутрь try / catch, выглядит следующим образом:
try:
user.delete()
except ProtectedError:
UserInfo.objects.filter(user=user).delete()
user.delete()
Но все же получил то же исключение.Что могло пойти не так в моей работе?