Как Django обрабатывает несколько действий CRUD над одной таблицей? (в одно и то же время)
Мне интересно, как Django обрабатывает несколько действий, выполняемых над одной и той же таблицей одновременно. Я использую Postgresql с Django ORM.
Имеет ли он механизм блокировки для обработки такого сценария?
Если да, то это по умолчанию или необходимо добавить какой-либо параметр?
Django предлагает select_for_update
менеджерский метод для блокировки базы данных. Имейте в виду, что для достижения блокировки ваш код должен быть обернут transaction.atomic
. В противном случае несколько запросов к базе данных для одних и тех же данных не будут препятствовать друг другу. Посмотрите документацию для более подробной информации.