Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

Django Workflow Library

Project description


Build Status Coverage Status Code Health Documentation Status Codacy Badge

Contributors are welcome. Come and give a hand :-)

River is an open source workflow framework for Django which support on the fly changes instead of hardcoding states, transitions and authorization rules.

The main goal of developing this framework is to be able to edit any workflow item on the fly. This means that all the elements in a workflow like states, transitions or authorizations rules are editable at any time so that no changes requires a re-deploying of your application anymore.

Playground: There is a fake jira example repository as a playground of django-river.


Online documentation is available at


  • Python (2.7, 3.4, 3.5, 3.6)
  • Django (1.7, 1.8, 1.9, 1.10, 1.11, 2.0, 2.1)
  • Django >= 2.0 is supported for Python >= 3.5
  • Django == 1.7 is only supported for Python == 2.7 and Python == 3.4


  1. Install and enable it

    pip install django-river
  2. Create your first state machine in your model and migrate your db

    from django.db import models
    from river.models.fields.state import StateField
    class MyModel(models.Model):
        my_state_field = StateField()
  3. Create your states as one of them will be your initial state on the admin page

  4. Create your transition approval metadata with your model (MyModel - my_state_field) information and authorization rules along with their priority on the admin page

  5. Enjoy your django-river journey.

    # and much more. Check the documentation


Whenever a model object is saved, it’s state field will be initialized with the state is given at step-3 above by django-river.


Make sure that there is only one initial state defined in your workflow, so that django-river can pick that one automatically when a model object is created. All other workflow items will be managed by django-river after object creations.


Contributions are welcome! Please join making always totally free django-river better.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for django-river, version 1.0.1
Filename, size File type Python version Upload date Hashes
Filename, size django-river-1.0.1.tar.gz (22.6 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page