跳转到主要内容

Django的乐观锁实现。防止用户进行并发编辑

项目描述

Django Concurrency

Pypi coverage Test Docs

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-lockdjango-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-py3-none-any.whl (27.2 kB 查看哈希值)

上传时间: Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面