Django. Одновременное сохранение экземпляра записи БД несколькими пользователями
Необходимо реализовать механизм одновременного сохранения одной и той же записи в БД несколькими пользователями. Принцип следующий:
Заявка открывается несколькими пользователями. Модель заявки имеет поле saveDate, которое хранит дату и время последнего сохранения. При открытии пользователь сохраняет параметр saveDate и перед записью в БД
проверяет его, сравнивая с экземпляром заявки из БД. Если saveDate не изменился - производится запись в БД, иначе пользователь получает сообщение об изменении заявки в ходе редактирования другим пользователем.
Пытаюсь реализовать этот механизм через view-представление, где запоминается saveDate, однако, т.к. view вызывается два раза - первый при инициализации формы для редактирования, второй - при записи формы. И saveDate, естественно, в данном случае не сохраняется.
Модель:
class Entry(models.Model):
...
saveDate = DateTimeField()
View:
def entry(request, pk):
...
entry = Entry.objects.get(id=pk)
save_date = entry.saveDate # сохраняем маркер даты, времени последнего редактирования
if request.method == 'POST':
...
oldEntry = Entry.objects.get(id=pk)
if save_date == oldEntry.saveDate: # проверяем маркер на изменение
entryForm.save()
...
else:
# сообщение пользователю об изменении исходных данных
Как в данном случае можно использовать маркер сохранения saveDate?
Может на этот случай есть стандартные методы блокировки записи БД при одновременном редактировании несколькими пользователями?