Django的乐观锁实现。防止用户进行并发编辑
项目描述
Django Concurrency
django-concurrency是Django的乐观锁实现。
它从UI和django命令两方面防止用户在Django中进行并发编辑。
工作原理
from django.db import models
from concurrency.fields import IntegerVersionField
class ConcurrentModel( models.Model ):
version = IntegerVersionField( )
name = models.CharField(max_length=100)
现在如果你尝试:
a = ConcurrentModel.objects.get(pk=1)
a.name = '1'
b = ConcurrentModel.objects.get(pk=1)
b.name = '2'
a.save()
b.save()
你将在b.save()上得到一个RecordModifiedError
类似的项目
处理并发编辑的其他项目有django-optimistic-lock和django-locking。无论如何,并发是一个“包含电池”的乐观锁管理系统,这里有一些其他地方没有的功能
- 可以应用于任何模型;不仅仅是你的代码(即django.contrib.auth.Group)
- 处理list-editable ChangeList。(处理
#11313 <https://code.djangoproject.com/ticket/11313>
_) - 管理admin动作中的并发冲突
- 可以拦截在django应用程序之外执行的更改(例如使用pgAdmin、phpMyAdmin、Toads)(使用TriggerVersionField)
- 如果需要可以禁用(请参阅disable_concurrency)
- ConditionalVersionField以处理复杂的业务规则
项目链接
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。
源代码分发
django_concurrency-2.6.0.tar.gz (61.5 kB 查看哈希值)
构建分发
关闭
django_concurrency-2.6.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f5c4133d6497da91a8c2640f443e216160a38398b6c8506fe551770691fe2a1d |
|
MD5 | e0e10c409053116ab37e49913baad21c |
|
BLAKE2b-256 | b1a6c3d75900363ec8b723eb0b062a3c5f38db736a71d57d7198e6da8c28b8f4 |
关闭
django_concurrency-2.6.0-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | eed723272c5450f102c0e7d03fbb1ab1253bcf853073d7ba356591eab88ecc9b |
|
MD5 | e992b9ca4dd30d49769072e440595201 |
|
BLAKE2b-256 | c284ac13c62f90ceb83da90d89f46da9eef490aac7db4f47b9de8be3c6d6331d |