Django viewflows - 定义API流程

时间:2018-02-14 06:16:11

标签: python django workflow django-viewflow

我是一个API端点/api/create/。这将根据从客户端收到的有效负载在数据库中创建一个新条目。

Payload - { 
'field1': 'value1`,
'field2': 'value2`,
'field3': 'value3`,
'field4': 'value4`,
'type': 'A'
}

现在取决于type,我是一个特定的工作流程。例如: - Type A需要在保存数据之前执行某些任务,Type B有自己的一组操作。

我没有任何用户界面,只有通过POST请求发出的请求。如何将django-viewflows用于此类用例?

已更新

我能够使用WorkFlowClass.start.run()以编程方式运行工作流程。它完美地启动了工作流程。但是,不是完整的工作流程。在完成工作流的Node1(开始)后,它不会转到Node2。意思是,只调用工作流的第一个任务,而不是后续任务。

这是我的工作流程。

class FunctionFlow1(Flow):
    start = flow.StartFunction(function1) \
        .Next(this.task2)
    task2 = flow.StartFunction(function2) \
        .Next(this.end)
    end = flow.End()

@flow_start_func
def function1(activation, **kwargs):
    print('Func1 Called.')
    activation.prepare()
    activation.done()
    return activation

@flow_start_func
def function1(activation, **kwargs):
    print('Func2 Called.')
    activation.prepare()
    activation.done()
    return activation

task2未被调用。为什么呢?

1 个答案:

答案 0 :(得分:1)

您可以使用viewflow.rest包来创建REST API。请查看演示项目并查看流动休息文档。

请注意,此功能仅适用于 PRO PRO

https://github.com/viewflow/cookbook/tree/master/react_ui

http://docs.viewflow.io/viewflow_rest.html

  

viewflow.rest包提供了REST的流程实现   接口