From c38efecd79c6f0cd702471fe4c51161b7718951c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8C=BF=E5=B0=8F=E5=A4=A9?= <1638245306@qq.com> Date: Wed, 16 Nov 2022 23:30:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=8F=98=E5=8C=96:=20?= =?UTF-8?q?=E8=BD=AF=E5=88=A0=E9=99=A4=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/dvadmin/utils/models.py | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/backend/dvadmin/utils/models.py b/backend/dvadmin/utils/models.py index 51ca501..af7d71c 100644 --- a/backend/dvadmin/utils/models.py +++ b/backend/dvadmin/utils/models.py @@ -44,6 +44,27 @@ class SoftDeleteManager(models.Manager): return SoftDeleteQuerySet(self.model).get(username=name) +class SoftDeleteModel(models.Model): + """ + 软删除模型 + 一旦继承,就将开启软删除 + """ + is_deleted = models.BooleanField(verbose_name="是否软删除", help_text='是否软删除', default=False, db_index=True) + objects = SoftDeleteManager() + + class Meta: + abstract = True + verbose_name = '软删除模型' + verbose_name_plural = verbose_name + + def delete(self, using=None, soft_delete=True, *args, **kwargs): + """ + 重写删除方法,直接开启软删除 + """ + self.is_deleted = True + self.save(using=using) + + class CoreModel(models.Model): """ 核心标准抽象模型模型,可直接继承使用 @@ -58,24 +79,12 @@ class CoreModel(models.Model): update_datetime = models.DateTimeField(auto_now=True, null=True, blank=True, help_text="修改时间", verbose_name="修改时间") create_datetime = models.DateTimeField(auto_now_add=True, null=True, blank=True, help_text="创建时间", verbose_name="创建时间") - is_deleted = models.BooleanField(verbose_name="是否软删除",help_text='是否软删除', default=False, db_index=True) - objects = SoftDeleteManager() - class Meta: abstract = True verbose_name = '核心模型' verbose_name_plural = verbose_name - def delete(self, using=None, soft_delete=True, *args, **kwargs): - """ - 软删除,根据delete(soft_delete=T/F)来判断 - """ - if soft_delete: - self.is_deleted = True - self.save(using=using) - else: - return super(CoreModel, self).delete(using=using, *args, **kwargs)