Он сказал:
Автокоммит Django не является автокоммитом в БД.
Итак, вы должны убедиться, что автокоммит установлен на уровне БД. В противном случае из-за изоляции транзакции процессы не будут видеть изменения, сделанные другим процессом (другим соединением), пока не будет выполнена фиксация. На самом деле, это не проблема Django, за исключением отсутствия ясности в документах об автоматической фиксации Django! = Db autocommit.
Обновление: Немного перефразируя из документов MySQL:
REPEATABLE READ является значением по умолчанию
уровень изоляции для InnoDB. За
последовательное чтение, есть
важное отличие от READ
СОВЕРШЕННЫЙ уровень изоляции: Все
последовательное чтение в том же
транзакция читать снимок
установлено первым чтением . (Мои
акцент.)
Таким образом, с REPEATABLE READ вы получаете только при последующих чтениях то, что было прочитано при первом чтении. При READ COMMITTED каждое чтение создает и считывает свой собственный свежий снимок, чтобы вы могли видеть последующие обновления из других транзакций. Так что, отвечая на ваш комментарий, вы изменили уровень транзакции.