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