Удаление модели пользователя, которая расширяет abstractuser
Я пытаюсь удалить объект пользователя, принадлежащий классу User, который расширяет AbstractUser. Расширяющийся класс выглядит примерно так:
class User(AbstractUser):
name = CharField("Name", blank=True, max_length=255)
def __str__(self):
return self.username
Когда я пытаюсь удалить пользователя следующим образом:
user = User.objects.get(pk=self.user_id)
user.delete()
Объект пользователя не удаляется (по крайней мере, при проверке таблицы пользователей в базе данных). Другие модели, которые имеют on_delete=models.CASCADE к моему пользовательскому классу пользователя, удаляются, как и ожидалось, но фактический объект пользователя НЕ удаляется.
Когда я пытаюсь
user = User.objects.get(pk=self.user_id)
user.delete()
user.delete() # adding extra delete()
т.е. лишнее user.delete(), то объект пользователя удаляется, но при этом возникает исключение ( которое не является неожиданным)
Объект пользователя не может быть удален, потому что его атрибут id установлен в None.
но объект user вместе с другими объектами, имеющими FK отношение к классу User, удаляются (как и ожидалось). Похоже, что объект был "удален" в первый раз, когда я вызвал user.delete()? Но я все еще могу видеть строку в таблице моего пользователя.
Не уверен, что это связано, но я вижу, что тип User для удаления <class 'django.utils.functional.SimpleLazyObject'> не является User классом модели.
Итак, я пытаюсь удалить объект пользователя, который расширяет класс abstractuser, но мне приходится дважды вызывать delete() на объекте, что не нормально (я думаю), как я могу избавиться от этого?