Skip to content

Optimistic lock implementation for Django. Prevents users from doing concurrent editing.

License

Notifications You must be signed in to change notification settings

technicaltitch/django-concurrency

 
 

Repository files navigation

Django Concurrency

PyPI package

django-concurrency is an optimistic lock [1]_ implementation for Django.

Supported Django versions: 1.8.x, 1.9.x, 1.10.x., 1.11.x, 2.x

It prevents users from doing concurrent editing in Django both from UI and from a django command.

How it works

sample code:

from django.db import models
from concurrency.fields import IntegerVersionField

class ConcurrentModel( models.Model ):
    version = IntegerVersionField( )
    name = models.CharField(max_length=100)

Now if you try:

a = ConcurrentModel.objects.get(pk=1)
a.name = '1'

b = ConcurrentModel.objects.get(pk=1)
b.name = '2'

a.save()
b.save()

you will get a RecordModifiedError on b.save()

Similar projects

Other projects that handle concurrent editing are django-optimistic-lock and django-locking anyway concurrency is "a batteries included" optimistic lock management system, here some features not available elsewhere:

Links

Stable master-build master-cov  
Development dev-build dev-cov  
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/
Documentation: https://django-concurrency.readthedocs.org/en/latest/

_list-editable: https://django-concurrency.readthedocs.org/en/latest/admin.html#list-editable

Join the chat at https://gitter.im/saxix/django-concurrency

About

Optimistic lock implementation for Django. Prevents users from doing concurrent editing.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 97.5%
  • HTML 1.6%
  • Makefile 0.9%