我正在浏览django的来源并查看get_or_create。 不应该用交易包裹吗?
由于
答案 0 :(得分:3)
查看this diff,看起来像Revision 8315,已在get_or_create()
方法中明确处理。
正如@reshefm指出的那样,rev 8670已将force_insert=True
添加到obj.save()
,以确保在竞争条件期间所有实例都尝试插入(而不是回归更新)所以只有一个会成功,而其他人会失败。失败的实例将继续执行另一个get()
。
就发布版本而言,此修补程序首先在1.0版中引入。