Как реализовать функцию жесткого удаления в Python Django? - PullRequest
1 голос
/ 09 июля 2019

У меня есть класс реализации User, там я хочу иметь функцию удаления двух типов:

class User(AbstractUser):
    nickname = models.CharField(max_length=16, blank=True, null=True) # nickname
    real_name = models.CharField(max_length=12, null=True, blank=True)
    phone = models.CharField(max_length=18)  # telephone
    ...
    status = models.CharField(max_length=1, null=True, default=1)


    def soft_del(self):
        self.status = 4
        return True

    def hard_delete_user(self):
        # what should I do there?
        return True

вы видите, одно - мягкое удаление пользователя, другое - жесткое удаление пользователя.

Я имею в виду мягкое удаление, пользователь все еще находится в базе данных, но я не буду запрашивать его по своему коду, сложное удаление - это удаление его из таблицы базы данных.

Как реализовать hard_delete_user функция?

1 Ответ

0 голосов
/ 09 июля 2019

Это просто self.delete() [Django-doc] , если я вас правильно понял:

class User(AbstractUser):

    # ...

    def hard_delete_user(self):
        <b>self.delete()</b>
        return True

Возможно, вы захотите ограничить эту функцию, например, удалить только объект User, если он уже был удален, например:

class User(AbstractUser):

    # ...

    def hard_delete_user(self):
        # example: restrict deletion to softly deleted
        if <b>self.status == 4:</b>
            self.delete()
            return True
        return False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...