Удаление модели пользователя, которая расширяет 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() на объекте, что не нормально (я думаю), как я могу избавиться от этого?

Вернуться на верх