Skip to content
Reusable workflow library for Django
Python HTML JavaScript Other
Branch: master
Clone or download
Latest commit ca6245e Nov 19, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
demo Update demo details Nov 18, 2019
viewflow Merge branch 'master' of Nov 18, 2019
.babelrc Move to webcomponents Oct 11, 2018
.gitignore Python 2.7 support May 28, 2017
CHANGELOG.rst Bump version Nov 19, 2019
COMM-LICENSE.txt Fix typo Jul 13, 2017
CONTRIBUTION.txt Contribution submission policy. #95 #101 #103 #104 Jul 13, 2015
LICENSE_EXCEPTION Add additional AGPL licence permissions. #70 May 28, 2017
package-lock.json Move to webcomponents Oct 11, 2018
setup.cfg Cleanup compatibility with django 1.8 - 1.10 Dec 11, 2017



Viewflow is a lightweight reusable workflow library that helps to organize people collaboration business logic in django applications.

In conjunction with django-material, they could be used as the framework to build ready to use business applications in minutes.
  • Viewflow 1.1.x compatible with Django 1.8/1.9/1.10/1.11 (supported till Django 1.8 lifetime/April 2018)
  • Viewflow 1.2.x compatible with Django 1.11/2.0 (supported till Django 1.11 lifetime/April 2020)
  • Viewflow 1.3.x/1.4.x/1.5.x compatible with Django 1.11/2.0/2.1/2.2 (supported till Django 1.11 lifetime/April 2020)


Django web framework solves only technical problems related to the client-server interaction on top of the stateless HTTP protocol. Model-View-Template separation pattern helps to maintain simple CRUD based logic. Viewflow is the library that offers an additional layer of django web framework, allows explicitly specify people's workflow and extracts collaboration logic from django views.

Viewflow layer is based on the BPMN - business process management and notation standard. It is the graphical notation readily understandable by all business stakeholders and software developers. Viewflow bridges the gap between a picture as the software specification and the working solution.

Django-Material frontend is the lightweight alternative to the django admin and allows you to build business applications. It's based on Google Material Design, that could be easily customized to your brand colors. Django-Material takes care of site-wide navigation, complex form construction, datagrids and CRUD functionality. Ready for fast development of any CRM, ERP, Business Management Software.

Quick start

5 minutes introduction tutorial


Viewflow comes with reference UI implementation on top of django-material project.

To checkout and run open source demo version locally, you need to have git and tox tools installed.

git clone
cd viewflow

TOXENV=py36-dj111 tox -- python migrate --settings=demo.settings
TOXENV=py36-dj111 tox -- python loaddata demo/helloworld/fixtures/helloworld/default_data.json --settings=demo.settings
TOXENV=py36-dj111 tox -- python runserver --settings=demo.settings

Then, you can open and login with admin:admin username/password pair.


Read the documentation at the


Advanced customization samples


Please open an issue to discuss. before pushing any new functionality.

See also - Contribution Agreement


Viewflow is an Open Source project licensed under the terms of the AGPL license - The GNU Affero General Public License v3.0 with the Additional Permissions described in LICENSE_EXCEPTION

Viewflow Pro has a commercial-friendly license allowing private forks and modifications of Viewflow. You can find the commercial license terms in COMM-LICENSE. Please see FAQ for more detail.

Latest changelog

1.6.0 2019-11-19

  • Django 3.0 support
  • Add process.artifact and task.artifact generic fk fields for default models
  • Add and generic json field for default models
  • Add View().OnCreate(...) callback support
  • Allow to overide flow view access by Flow.has_view_permission method
You can’t perform that action at this time.