自动为用户分配任务(Viewflow,Django)

2024-05-13 21:57:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用Viewflow/Django并尝试分配由动态节点创建的任务。在

我在customnode中使用相同的nodes.py。在

但是,我需要根据MOCTask model(受让人)中的信息自动分配每个新任务。在

但是任务不允许使用特定用户对象以外的任何对象进行赋值,并且我无权访问MOCTask对象(它们通过外键与MOC相关,后者通过外键与流本身MOCProcess相关)。在

我在试我的代码(flows.py)公司名称:

...
split_on_task_assignment = (
  DynamicSplit(lambda p: MOCTask.objects.filter(MOC=p.MOC).count())
  .IfNone(this.end)
  .Next(this.task_completion)
)

task_completion = (
  flow.View(views.TaskCompletion)
  .Permission('MOC.is_MOC_actor')
  .Assign(this.assign_actors)
  .Next(this.join_on_task_completion)
)
...
def assign_actors(self, activation):
  task = MOCTask.objects.filter(MOC=activation.process.MOC, assigned=False).first()
  task.assigned = True
  task.save()
  return User.objects.filter(email=task.assignee).first()

但是,我不能在assign块中放置this引用,因此我不确定如何继续。在

有什么想法吗?在


Tags: 对象pytaskobjectsonactorsfilterthis
1条回答
网友
1楼 · 发布于 2024-05-13 21:57:28

创建后续任务时,可以在DynamicSplitActivation内分配用户

def activate_next(self): if self._split_count: token_source = Token.split_token_source( self.task.token, self.task.pk) for _ in range(self._split_count): activation = self.flow_task._next.activate( prev_activation=self, token=next(token_source)) activation.activate(..a user..)

相关问题 更多 >