有两个附加的Start内置任务可用于Flows
@flow_start_func
def create_flow(activation, **kwargs):
activation.prepare()
activation.done()
return activation
class FunctionFlow(Flow):
start = flow.StartFunction(create_flow) \
.Next(this.end)
# somewhere in the code
FunctionFlow.start.run(**some_kwargs)
StartSignal-在django信号接收上开始流:
class SignalFlow(Flow):
start = flow.StartSignal(some_signal, create_flow) \
.Next(this.end)
您可以在此viewflow测试套件中检查它们的用法以及其余的内置任务。
要手动处理任务状态,首先应该从数据库中获取任务,将其激活,然后调用任何激活方法。
task = MyFlow.task_cls.objects.get(...)
activation = task.activate()
if activation.undo.can_proceed():
activation.undo()
任何激活过渡都有.can_proceed()方法,可以帮助您检查,是处于允许过渡状态的任务。