{"id":21170,"library":"django-viewflow","title":"django-viewflow","description":"A reusable library to build business applications fast, providing a BPMN-like workflow engine for Django. Current version is 2.2.15, with a release cadence of minor releases every few months.","status":"active","version":"2.2.15","language":"python","source_language":"en","source_url":"https://github.com/viewflow/viewflow","tags":["workflow","django","bpmn","business-process","flow"],"install":[{"cmd":"pip install django-viewflow","lang":"bash","label":"Install via pip"}],"dependencies":[{"reason":"Core dependency for the web framework","package":"django","optional":false}],"imports":[{"note":"Flow class moved to viewflow.flow module in v2.x","wrong":"from viewflow import Flow","symbol":"Flow","correct":"from viewflow.flow import Flow"},{"note":"","wrong":"","symbol":"FlowNode","correct":"from viewflow.flow import FlowNode"},{"note":"Nodes moved to flow module in v2","wrong":"from viewflow.nodes import Start","symbol":"Start","correct":"from viewflow.flow import Start"},{"note":"","wrong":"","symbol":"End","correct":"from viewflow.flow import End"},{"note":"","wrong":"","symbol":"If","correct":"from viewflow.flow import If"},{"note":"","wrong":"","symbol":"Switch","correct":"from viewflow.flow import Switch"},{"note":"","wrong":"","symbol":"Join","correct":"from viewflow.flow import Join"},{"note":"","wrong":"","symbol":"Split","correct":"from viewflow.flow import Split"}],"quickstart":{"code":"from viewflow.flow import Flow, Start, End, If\nfrom viewflow.base import this\n\nclass MyFlow(Flow):\n    start = Start().Next(this.end)\n    end = End()\n\n# In views, you can activate process instances:\nfrom viewflow.models import Process\n\n# Example: act = MyFlow.start.run()  # creates a process instance","lang":"python","description":"Minimal flow definition with start and end nodes."},"warnings":[{"fix":"Upgrade to v2.x requires rewriting flow definitions. Refer to migration docs at https://github.com/viewflow/viewflow#migration-from-v1","message":"Viewflow v2.x is a complete rewrite from v1.x. The entire API changed; custom code from v1.x will not work.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Use 'from viewflow.flow import Start, End, If' instead of old import.","message":"Import paths changed in v2: nodes like Start, End, If are now under viewflow.flow, not viewflow.nodes.","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Replace 'from viewflow.workflow import ...' with 'from viewflow.flow import ...'","message":"The 'viewflow.workflow' module is deprecated; use 'viewflow.flow' instead.","severity":"deprecated","affected_versions":">=2.1.0"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Use 'from viewflow.flow import Flow'","cause":"In v2, Flow is not directly imported from top-level viewflow; it resides in viewflow.flow.","error":"ImportError: cannot import name 'Flow' from 'viewflow'"},{"fix":"Use 'from viewflow.flow import ...' instead of 'from viewflow.workflow import ...'","cause":"The viewflow.workflow module was removed in favor of viewflow.flow.","error":"AttributeError: module 'viewflow' has no attribute 'workflow'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}