Esempio n. 1
0
    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()
Esempio n. 2
0
def concurrency_check(model_instance,
                      force_insert=False,
                      force_update=False,
                      using=None,
                      **kwargs):
    if not force_insert:
        _select_lock(model_instance)
Esempio n. 3
0
    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)
Esempio n. 5
0
    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()
Esempio n. 6
0
def concurrency_check(model_instance, force_insert=False, force_update=False, using=None, **kwargs):
    if not force_insert:
        _select_lock(model_instance)