Как сделать идемпотентное создание записи при гонке (двойной запрос) в Django?
Ввести уникальный бизнес-ключ (UniqueConstraint), обернуть в transaction.atomic(), использовать get_or_create() либо create() с перехватом IntegrityError и затем get(). Не делать предварительных exists(). При зависимостях — лочить родителя select_for_update().
Библиотека собеса по Python
Post #1286
873