Django и «get () вернули более одного имени модели» в многопоточной программе - PullRequest
1 голос
/ 10 марта 2010

Функция Django get_or_create всегда вызывает ошибку «get () вернула более одного имени модели» в многопоточной программе.

Я даже пытался поместить оператор get_or_create в блоки lock.acquire () и lock.release (), но все равно не работал.

Программа работает только когда я установил thread_count = 1

База данных находится на движке InnoDB. Как решить эту проблему?

1 Ответ

2 голосов
/ 10 марта 2010

Это вызвано не многопоточностью, а тем, что в базе данных имеется более одного объекта, который удовлетворяет вашему запросу. Вы должны выбрать ровно один объект из базы данных, используя get, иначе это вызовет исключение.

...