Django viewflow выполняет запросы в пользовательском узле

Я пытаюсь адаптировать пример Viewflow Dynamicsplit

Задача состоит в том, чтобы разделить утверждения заказа на основе OrderLines и назначить их соответствующему утвердителю. Кажется, что это должно быть возможно, так как есть возможность, описанная в этом ответе - Автоматическое назначение пользователя на задачи (Viewflow, Django)

Проблема в том, что всякий раз, когда я пытаюсь взять текущий ордер pk в DynamicSplitActivation - queryset возвращается пустым. Не уверен, где я ошибаюсь. Кверисет работает нормально, если я устанавливаю pk вручную, но как только я пытаюсь использовать динамическую переменную, он перестает работать

Я перечислил поток, модели и т.д. в конце сообщения, однако, я предполагаю, что вопрос довольно простой. Любая помощь будет оценена по достоинству!

nodes.py

...

class DynamicSplitActivation(AbstractGateActivation):
    def calculate_next(self):
        self._order = self.flow_task._order_callback(self.process)

        order_id = self._order.pk
#        order_id = 28
        order_lines = models.OrderLine.objects.filter(order_id=order_id)
        project_lines = project_models.ProjectLine.objects.filter(orderline__in=order_lines)
        users = User.objects.filter(projectline__in=project_lines).distinct()

        self._approvers = users
...

class DynamicSplit(...):
...

    def __init__(self, callback):
        super(DynamicSplit, self).__init__()
        self._order_callback = callback
        self._ifnone_next_node = None

...

flows.py

...

    approval_split = (
        nodes.DynamicSplit(lambda act: act.order)
        .IfNone(this.end)
        .Next(this.split_approval_budget)
    )

models.py

...

class ProjectLine(models.Model):
    project = models.ForeignKey(Project, on_delete=models.CASCADE)
    description = models.CharField(max_length=50)
    budget_holder = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL, null=True, blank=True)

class Order(models.Model):
    description = models.CharField(max_length=30)

class OrderLine(models.Model):
    order = models.ForeignKey(Order, on_delete=models.CASCADE)
    project_line = models.ForeignKey(project_models.ProjectLine, on_delete=models.SET_NULL, null=True, blank=False)
    product = models.ForeignKey(catalogue_models.Product, on_delete=models.CASCADE)
    quantity = models.PositiveIntegerField()

    budgetholder_approved = models.BooleanField(null=True)

class OrderProccess(Process):
    order = models.ForeignKey(Order, blank=True, null=True, on_delete=models.CASCADE)

...
Вернуться на верх