diff --git a/django_etebase/serializers.py b/django_etebase/serializers.py index 32a2757..06bc8ad 100644 --- a/django_etebase/serializers.py +++ b/django_etebase/serializers.py @@ -239,6 +239,11 @@ class CollectionItemSerializer(BetterErrorsMixin, serializers.ModelSerializer): # We don't have to use select_for_update here because the unique constraint on current guards against # the race condition. But it's a good idea because it'll lock and wait rather than fail. current_revision = instance.revisions.filter(current=True).select_for_update().first() + + # If we are just re-uploading the same revision, consider it a succes and return. + if current_revision.uid == revision_data.get("uid"): + return instance + current_revision.current = None current_revision.save()