Я хочу создать элемент, но только если «похожего» объекта не существует. Например:
name_to_be_created = "John"
age_to_be_created = 15
if not Person.objects.filter(name=name_to_be_created, age__gte=age_to_be_created).exists():
Person.objects.create(name=name_to_be_created, age=age_to_be_created)
Обратите внимание, что намеренно условие недостаточно простое, чтобы разрешить использование get_or_create
. Как я понимаю, использование транзакции при использовании select
, а затем insert
не гарантирует такого рода согласованность
Я использую Postgres