def clean(self): try: _select_lock(self.instance, self.cleaned_data[self.instance.RevisionMetaInfo.field.name]) except RecordModifiedError: self._update_errors({NON_FIELD_ERRORS: self.error_class([_('Record Modified')])}) return super(ConcurrentForm, self).clean()
def concurrency_check(model_instance, force_insert=False, force_update=False, using=None, **kwargs): if not force_insert: _select_lock(model_instance)
def clean(self): try: if self.instance.pk: _select_lock(self.instance, self.cleaned_data[self.instance._concurrencymeta.field.name]) except RecordModifiedError: self._update_errors(ValidationError({NON_FIELD_ERRORS: self.error_class([_('Record Modified')])})) return super(ConcurrentForm, self).clean()
def test_select_lock(settings): s1 = SimpleConcurrentModel.objects.create() s2 = refetch(s1) assert s1.version == s2.version s2.save() with pytest.raises(RecordModifiedError): _select_lock(s1) settings.CONCURRENCY_ENABLED = False _select_lock(s1)
def clean(self): try: _select_lock( self.instance, self.cleaned_data[self.instance.RevisionMetaInfo.field.name]) except RecordModifiedError: self._update_errors( {NON_FIELD_ERRORS: self.error_class([_('Record Modified')])}) return super(ConcurrentForm, self).clean()