From ed915aa2cb9bba213581be364935e6f34f9a85d5 Mon Sep 17 00:00:00 2001 From: 1638245306 <1638245306@qq.com> Date: Tue, 17 Jun 2025 11:35:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(core):=20=E6=96=B0=E5=A2=9E=E8=BD=AF?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E5=92=8C=E5=B7=A5=E4=BD=9C=E6=B5=81=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E7=AD=9B=E9=80=89=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 CoreModelManager 类,实现软删除和工作流状态的筛选 - 在 CoreModel 中集成新功能- 增加 objects 和 all_objects 两个 Manager,支持不同查询需求 --- backend/dvadmin/utils/models.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/backend/dvadmin/utils/models.py b/backend/dvadmin/utils/models.py index b387ea4..1283351 100644 --- a/backend/dvadmin/utils/models.py +++ b/backend/dvadmin/utils/models.py @@ -81,6 +81,26 @@ class SoftDeleteModel(models.Model): super().delete(using=using, *args, **kwargs) +class CoreModelManager(models.Manager): + def get_queryset(self): + is_deleted = getattr(self.model, 'is_soft_delete', False) + flow_work_status = getattr(self.model, 'flow_work_status', False) + queryset = super().get_queryset() + if flow_work_status: + queryset = queryset.filter(flow_work_status=1) + if is_deleted: + queryset = queryset.filter(is_deleted=False) + return queryset + def create(self,request: Request=None, **kwargs): + data = {**kwargs} + if request: + request_user = request.user + data["creator"] = request_user + data["modifier"] = request_user.id + data["dept_belong_id"] = request_user.dept_id + # 调用父类的create方法执行实际的创建操作 + return super().create(**data) + class CoreModel(models.Model): """ 核心标准抽象模型模型,可直接继承使用 @@ -98,7 +118,8 @@ class CoreModel(models.Model): verbose_name="修改时间") create_datetime = models.DateTimeField(auto_now_add=True, null=True, blank=True, help_text="创建时间", verbose_name="创建时间") - + objects = CoreModelManager() + all_objects = models.Manager() class Meta: abstract = True verbose_name = '核心模型'