一尘不染

Django的工作流程框架

django

我一直在寻找一个框架来简化Django应用程序中相当复杂的工作流的开发。我希望能够使用该框架来自动进行状态转换,许可以及审计日志和通知之类的其他功能。

我已经看到了有关同一主题的一些较旧的信息,但在过去的2-3年中所涉及的信息不多。我听说过的主要选择是GoFlow(自2/2009开始不更新)和django-workflow(似乎更活跃)。

有没有人使用过这些软件包?它们是否成熟和/或与现代(1.3)Django兼容?还有其他值得考虑或更好地支持的选择吗?


阅读 1253

收藏
2020-03-27

共1个答案

一尘不染

让我在这里做一些说明,因为我是django-fsm和django-viewflow的作者,这两个项目可以称为“工作流库”。

工作流词本身有点高估。不同种类的库和软件可以称自己为“工作流”,但功能各不相同。共同点是工作流将某个过程的步骤连接成一个整体。

一般分类
如我所见,工作流实施方法可以分类如下:

  • 单/多用户 -工作流库是自动执行单用户任务还是具有权限检查/任务分配选项。
  • 顺序/并行 -顺序工作流只是状态机模式的实现,并且允许同时具有单个活动状态。并行工作流允许一次执行多个活动任务,并且可能具有某种并行同步/联接功能。
  • 显式/隐式 -无论工作流是表示为单独的外部实体,还是被编织到其他类别中,其主要职责都是不同的。
  • 静态/动态 -静态工作流只用python代码实现一次,然后执行,通常可以通过更改工作流数据库表的内容来配置动态工作流。静态工作流通常可以更好地与其他django基础结构(例如视图,表单和模板)集成在一起,并且可以通过类继承之类的常用python结构更好地进行自定义。动态工作流假定您具有可以适应任何工作流运行时更改的通用界面。
    其中,前两个可以看作是渐进的差异,但其他两个是根本的。
2020-03-27