Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django过滤器和更新原子性_Python_Django_Django Models_Orm_Atomicity - Fatal编程技术网

Python Django过滤器和更新原子性

Python Django过滤器和更新原子性,python,django,django-models,orm,atomicity,Python,Django,Django Models,Orm,Atomicity,更新筛选记录时,如果要确保在执行此更新之前,筛选的行不会被其他过程更改,是否需要选择\u进行\u更新,或者此筛选器+更新原子性是否保证开箱即用 也就是说,这是: with transaction.atomic(): Foo.objects.select_for_update().filter(id=1).update(**kwargs) 相当于: Foo.objects.filter(id=1).update(**kwargs) ? 我正在使用Django 1.6.x.简短回答: 当

更新筛选记录时,如果要确保在执行此
更新
之前,筛选的行不会被其他过程更改,是否需要
选择\u进行\u更新
,或者此筛选器+更新原子性是否保证开箱即用

也就是说,这是:

with transaction.atomic():
    Foo.objects.select_for_update().filter(id=1).update(**kwargs)
相当于:

Foo.objects.filter(id=1).update(**kwargs)
?


我正在使用Django 1.6.x.

简短回答:

当所有内容都在一个查询(您的案例)中生成时,您不需要使用
select\u for\u update

更长的回答:

它调用“脏读”,并由默认情况下通常使用的“读提交”事务隔离级别覆盖。

您真的不应该再使用Django 1.6。