我想在标准viewflow.frontend之外集成进程、启动进程等。为此,我一直在尝试创建一个简单的页面,在那里我可以开始一个新的过程,但一直在努力寻找一种实现它的方法。
一种方法是定义一个指向url('^start_something, CustomStartView.as_view())的url,并使用CustomStartView子类化来自viewflow.flow.views.start的CreateProcessView。每当我修复一个错误时,这都会导致在出错后出现错误。我现在非常确定这不是正确的方法,因为View被用作Flow类本身的参数,可能需要以不同于通用视图的方式使用。
什么才是正确的方法呢?
发布于 2017-02-20 17:41:54
视图流视图需要通过flow_class和flow_task实例进行参数化。因此您可以包含一个开始视图,如下所示:
url('^start/', CreateProcessView.as_view(), {
'flow_class': MyFlow,
'flow_task': MyFlow.start})要添加任务视图URL配置,需要使用process_pk和task_pk参数
url('^(?P<process_pk>\d+)/approve/(?P<task_pk>\d+)/', ApproveView.as_view(), {
'flow_class': MyFlow,
'flow_task': MyFlow.approve
})对于每个节点,您还可以启用详细信息和各种操作URL,例如:
url('^(?P<process_pk>\d+)/approve/(?P<task_pk>\d+)/detail/', DetailTaskView.as_view(), {
'flow_class': MyFlow,
'flow_task': MyFlow.approve
}),
url('^(?P<process_pk>\d+)/approve/(?P<task_pk>\d+)/cancel/', CancelTaskView.as_view(), {
'flow_class': MyFlow,
'flow_task': MyFlow.approve
}),所有这些都是一个很大的麻烦。
推荐方式
您可以只包含包含所有已收集并准备包含在Flow.instance.urls配置中的URL的URL。
url('^myflow', include(MyFlow.instance.urls, namespace='myflow'))最后,要启用任务列表视图,您可以手动输入URL条目,例如
url('^myflow/inbox/', TaskListView.as_view(), {
'flow_class': MyFlow}, name="tasks")或仅用作viewflow.flow.viewset.FlowViewSet类
myflow_urls = FlowViewSet(MyFlow).urls
urlpatterns = [
url(r'^myflow/', include(myflow_urls, namespace='myflow'))
]这是将viewflow URL包含到django URL Config中的推荐方法。要自定义该URL配置中使用的视图,可以继承FlowViewSet类并在节点定义中提供视图,例如
class MyFlow(Flow):
start = flow.Start(detail_view_class=MyDetailTaskView)对于示例用法,您可以查看Viewflow自定义UI食谱示例- https://github.com/viewflow/cookbook/tree/master/custom_ui
https://stackoverflow.com/questions/42277033
复制相似问题