Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 自动将用户分配给任务(Viewflow、Django)_Python_Django_Django Viewflow - Fatal编程技术网

Python 自动将用户分配给任务(Viewflow、Django)

Python 自动将用户分配给任务(Viewflow、Django),python,django,django-viewflow,Python,Django,Django Viewflow,我正在使用/Django并尝试分配由动态节点创建的任务 我在中使用了相同的节点.py 但是,我需要根据MOCTask model(受让人)中的信息自动分配每个新任务 但是任务不允许对特定用户对象以外的任何对象进行分配,我无权访问MOCTask对象(它们通过外键与MOC相关,而MOC通过外键与流本身MOCProcess相关) 我正在尝试的代码(flows.py): 但是,我无法将此引用放在分配块中,因此我不确定如何继续 有什么想法吗?当创建后续任务时,可以在dynamicprivation中分配用

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

我在中使用了相同的
节点.py

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

但是任务不允许对特定用户对象以外的任何对象进行分配,我无权访问
MOCTask
对象(它们通过外键与MOC相关,而MOC通过外键与流本身
MOCProcess
相关)

我正在尝试的代码(flows.py):

但是,我无法将
引用放在分配块中,因此我不确定如何继续


有什么想法吗?

当创建后续任务时,可以在
dynamicprivation
中分配用户

def下一步激活(自):
如果自分割计数:
token\u source=token.split\u token\u source(
self.task.token,self.task.pk)
对于范围内的(自分割计数):
激活=自我流动任务。\u下一步。激活(
上一次激活=自我,令牌=下一次(令牌源))
激活。激活(…用户…)

在创建后续任务时,可以在
动态军事行动
中分配用户

def下一步激活(自):
如果自分割计数:
token\u source=token.split\u token\u source(
self.task.token,self.task.pk)
对于范围内的(自分割计数):
激活=自我流动任务。\u下一步。激活(
上一次激活=自我,令牌=下一次(令牌源))
激活。激活(…用户…)

...
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()