代码之家  ›  专栏  ›  技术社区  ›  Srinath Ganesh

Django ViewFlow:基于验证的导航步骤

  •  0
  • Srinath Ganesh  · 技术社区  · 7 年前

    我使用的是位于ViewFlow的HelloWorld示例 cookbook . 整个源代码与 helloworld

    check_approve = (
        flow.If(lambda activation: activation.process.approved)
        .Then(this.send)
        .Else(this.start)  # Edited (was this.end)
    )
    

    所以基本上我打算如果用户保持 Approved 复选框,然后它会将任务推回到开始步骤。

    NotImplementedError at /workflow/helloworld/helloworld/3/approve/11/
    No exception message supplied
    
        Internal Server Error: /workflow/helloworld/helloworld/3/approve/11/
    Traceback (most recent call last):
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/django/core/handlers/exception.py", line 41, in inner
        response = get_response(request)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 187, in _get_response
        response = self.process_exception_by_middleware(e, request)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/django/core/handlers/base.py", line 185, in _get_response
        response = wrapped_callback(request, *callback_args, **callback_kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/django/views/generic/base.py", line 68, in view
        return self.dispatch(request, *args, **kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/django/utils/decorators.py", line 67, in _wrapper
        return bound_func(*args, **kwargs)
      File "/usr/lib/python3.6/contextlib.py", line 52, in inner
        return func(*args, **kwds)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/decorators.py", line 213, in _wrapper
        return view(request, **kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/django/utils/decorators.py", line 63, in bound_func
        return func.__get__(self, type(self))(*args2, **kwargs2)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/flow/views/task.py", line 70, in dispatch
        return super(BaseFlowMixin, self).dispatch(request, **kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/django/views/generic/base.py", line 88, in dispatch
        return handler(request, *args, **kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/django/views/generic/edit.py", line 240, in post
        return super(BaseUpdateView, self).post(request, *args, **kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/django/views/generic/edit.py", line 183, in post
        return self.form_valid(form)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/flow/views/task.py", line 86, in form_valid
        self.activation_done(*args, **kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/flow/views/task.py", line 78, in activation_done
        self.activation.done()
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/fsm.py", line 44, in __call__
        return self.descriptor(self.instance, *args, **kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/fsm.py", line 112, in __call__
        result = self.func(instance, *args, **kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/activation.py", line 384, in done
        self.activate_next()
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/fsm.py", line 44, in __call__
        return self.descriptor(self.instance, *args, **kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/fsm.py", line 112, in __call__
        result = self.func(instance, *args, **kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/activation.py", line 396, in activate_next
        self.flow_task._next.activate(prev_activation=self, token=self.task.token)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/__init__.py", line 154, in activate
        return self.activation_class.activate(self, prev_activation, token)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/activation.py", line 561, in activate
        activation.perform()
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/fsm.py", line 44, in __call__
        return self.descriptor(self.instance, *args, **kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/fsm.py", line 112, in __call__
        result = self.func(instance, *args, **kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/activation.py", line 525, in perform
        self.activate_next()
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/fsm.py", line 44, in __call__
        return self.descriptor(self.instance, *args, **kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/fsm.py", line 169, in __call__
        result = self.func(instance, *args, **kwargs)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/nodes/ifgate.py", line 24, in activate_next
        self.flow_task._on_false.activate(prev_activation=self, token=self.task.token)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/__init__.py", line 154, in activate
        return self.activation_class.activate(self, prev_activation, token)
      File "/home/admin-12/PycharmProjects/viewflow1/venv/lib/python3.6/site-packages/viewflow/activation.py", line 216, in activate
        raise NotImplementedError
    NotImplementedError
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Andreas    7 年前

    问题似乎是您试图跳转到else语句中的flow.Start元素。请尝试跳转到例如flow.View元素。