我有一个用户实现类,在那里我想拥有两个类型的删除功能:
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
功能?
答案 0 :(得分:0)
这只是self.delete()
[Django-doc],因为我对您的理解正确:
class User(AbstractUser):
# ...
def hard_delete_user(self):
self.delete()
return True
您可能希望限制此功能,例如,鉴于已经被轻柔删除的对象,仅删除User
对象,例如:
class User(AbstractUser):
# ...
def hard_delete_user(self):
# example: restrict deletion to softly deleted
if self.status == 4:
self.delete()
return True
return False