Предоставляет ли Django ORM способ условного создания объекта?
Например, допустим, вы хотите использовать какой-то оптимистичный контроль параллелизма для вставки новых объектов.
В определенный моментВы знаете, что последний объект должен быть вставлен в эту таблицу, и вы хотите создавать новый объект только в том случае, если с тех пор новые объекты не были вставлены.
Если это обновление, вы можете фильтровать на основе ревизии.номер:
updated = Account.objects.filter(
id=self.id,
version=self.version,
).update(
balance=balance + amount,
version=self.version + 1,
)
Однако я не могу найти никакого документированного способа предоставить условия для вызова create()
или save()
.
Я ищу что-то, что применило бы эти условия на уровне запросов SQL, чтобы избежать проблем «чтения-изменения-записи».