Я использую Python 3.5, Django 1.8 и PostgreSql 9.4.
Итак, у меня есть один метод редактирования, в котором в запросе на получение я отображаю форму, и когда пользователь отправляет форму, она будет обновлена. Ее код
def edit_case(request, case_id):
case = get_object_or_404(Case, pk=case_id)
if request.method == 'POST':
data = request.POST.copy()
form = CaseEditForm(data, instance=case)
if form.is_valid():
res = form.save()
return HttpResponseRedirect(reverse("case_list"))
else:
form = CaseEditForm(instance=case)
variables = RequestContext(request, {
"form": form,
})
return render_to_response(
'sample/edit_case.html',
variables,
)
Теперь я хочу добавить к нему блокировку на уровне строк, например, если один пользователь обновляет что-то одновременно, другой не сможет ничего обновить, если предыдущая транзакция не будет успешной. Или если у кого-то есть другие лучшие предложения, а не использование пессимистической блокировки.
Я знаю о select_for_update
, но понятия не имею, как это будет реализовано в случае form.save()
Любая помощь могла бы быть полезна