You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于DailyReflectionPage的日期字段实现分支审核工作流

实现方案

你当前使用的是Wagtail CMS的页面模型,可通过以下步骤完成按日期自动分配审核组的需求:

步骤1:后台创建对应的用户组和工作流

  • 首先进入Wagtail后台的「用户组」管理页面,创建两个独立审核组:
    • 上半年内容审核组:添加负责1-6月反思内容的审核人员,为其分配DailyReflectionPage的审核、发布权限
    • 下半年内容审核组:添加负责7-12月反思内容的审核人员,分配对应权限
  • 进入「工作流」管理页面,创建两个对应审核工作流:
    • 上半年审核工作流:设置slug为first-half-review-workflow,审核步骤指定审核主体为「上半年内容审核组」,可根据需求设置审核通过后直接发布或进入其他环节
    • 下半年审核工作流:设置slug为second-half-review-workflow,审核步骤指定审核主体为「下半年内容审核组」

步骤2:修改页面模型自动匹配工作流

在你的DailyReflectionPage模型中重写get_workflow方法,根据reflection_date的月份自动返回对应工作流,代码示例如下:

from wagtail.models import Workflow

class DailyReflectionPage(Page):
    """
    The Daily Reflection Model
    """
    # 原有代码保持不变
    reflection_date = models.DateField("Reflection Date", max_length=254)
    
    @cached_property
    def date(self):
        """
        Returns the Reflection's date as a string in %Y-%m-%d format
        """
        fmt = "%Y-%m-%d"
        date_as_string = (self.reflection_date).strftime(fmt)
        return date_as_string      

    # 新增重写工作流获取方法
    def get_workflow(self):
        # 根据日期月份匹配对应工作流
        try:
            if self.reflection_date.month <= 6:
                return Workflow.objects.get(slug="first-half-review-workflow")
            else:
                return Workflow.objects.get(slug="second-half-review-workflow")
        except Workflow.DoesNotExist:
            # 工作流未创建时 fallback 到默认工作流
            return super().get_workflow()

    def full_clean(self, *args, **kwargs):
        # 原有代码注意优化判断逻辑:字符串比较不要用is/is not,改为==/!=
        super(DailyReflectionPage, self).full_clean(*args, **kwargs)
        if self.slug != self.date:
            self.slug = self.date

步骤3:验证效果

配置完成后:

  • 创建reflection_date为1-6月的反思页面,提交审核后会自动进入上半年审核组的待办队列
  • 创建reflection_date为7-12月的反思页面,提交审核后会自动进入下半年审核组的待办队列

内容的提问来源于stack exchange,提问作者engineervix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:12:03