Django Concurrency¶
Overview¶
django-concurrency is an optimistic locking library for Django Models
It prevents users from doing concurrent editing in Django both from UI and from a django command.
- easy to add to existing Models (just add VersionField )
- can be added with Django internal models (ie auth.User or auth.Group)
- handle http post and standard python code (ie. django management commands)
- complete test suite (Test suite)
- Admin integration. Handle actions and list_editable (solves issue #11313)
- can handle external updates (see TriggerVersionField)
How it works¶
Overview¶
django-concurrency works adding a concurrency.fields.VersionField
to each model,
each time a record is saved the version number changes (the algorithm used depends
on the implementation of concurrency.fields.VersionField
used (see Fields).
Each update is converted in the following SQL clause like:
UPDATE mymodel SET version=NEW_VERSION, ... WHERE id = PK AND version = VERSION_NUMBER
Table Of Contents¶
Links¶
- Project home page: https://github.com/saxix/django-concurrency
- Issue tracker: https://github.com/saxix/django-concurrency/issues?sort
- Download: http://pypi.python.org/pypi/django-concurrency/
- Docs: http://readthedocs.org/docs/django-concurrency/en/latest/
[1] | http://en.wikipedia.org/wiki/Optimistic_concurrency_control |