feat(core): 新增软删除和工作流状态筛选功能
- 添加 CoreModelManager 类,实现软删除和工作流状态的筛选 - 在 CoreModel 中集成新功能- 增加 objects 和 all_objects 两个 Manager,支持不同查询需求
This commit is contained in:
@@ -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 = '核心模型'
|
||||
|
||||
Reference in New Issue
Block a user