Django模型的比较和交换

时间:2015-02-24 07:15:38

标签: django django-models django-orm

我想在Django模型上实现比较和交换(CAS)操作。我想只在数据库中的状态与我认为的状态匹配时才在模型上设置状态。如果没有,我想提出一个例外。

我目前正在将此逻辑实现为:

if 1 != Model.objects.filter(id=obj.id, status=obj.status).update(status=status_to):
    raise ConcurrentWorkerException
obj.status = status_to

这是执行此操作的最佳方法还是我应该使用某些ORM级别功能?

0 个答案:

没有答案