Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
В случае использования метода get_or_create() — написать свой метод, выполняющий принудительный COMMIT перед повторным чтением данныхтут следует учесть, что коммит приводит к глобальным изменениям. если клиентский код, использующий данный метод, помимо получения объекта, проводит с базой ещё какие-то манипуляции, то преждевременное подтверждение транзакции для него может стать чревато. в общем случае, коммитить транзакцию лучше на том же уровне, где её отрывали.
1. В Django в качестве интерфейса к MySQL используется расширение MySQLdb, а оно в свою очередь при каждом подключении к базе устанавливает:
AUTOCOMMIT=0
Commit any pending transaction to the database. Note that if the database supports an auto-commit feature, this must be initially off. An interface method may be provided to turn it back on.
Django и особенности использования транзакций в MySQL