Не должен ли метод get_or_create модели django быть включен в транзакцию? - PullRequest
10 голосов
/ 16 февраля 2011

Я просматривал исходный код django и посмотрел на get_or_create .Разве это не должно быть связано с транзакцией?

Спасибо

1 Ответ

3 голосов
/ 16 февраля 2011

Глядя на этот diff , он выглядит как на Revision 8315 , который был явно обработан в методе get_or_create().

Обновление

Как указал @reshefm, это было правильно решено в rev 8670 , где force_insert=True был добавлен к obj.save(), чтобы гарантировать, что во время гонки все экземпляры попытаются вставить (и не упасть вернуться к обновлению), поэтому только один будет успешным, в то время как другие потерпят неудачу. Неудачные экземпляры будут продолжать делать еще get().

Что касается версии выпуска, это исправление было впервые введено в выпуске 1.0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...