diff --git a/dandiapi/zarr/views/__init__.py b/dandiapi/zarr/views/__init__.py index 97f307388..64f569ebc 100644 --- a/dandiapi/zarr/views/__init__.py +++ b/dandiapi/zarr/views/__init__.py @@ -187,8 +187,7 @@ def create(self, request): @action(methods=['POST'], detail=True) def upload(self, request, zarr_id): """Start an upload of files to a zarr archive.""" - # reset select_related to prevent locking additional rows - queryset = self.get_queryset().select_related(None).select_for_update() + queryset = self.get_queryset().select_for_update(of=['self']) with transaction.atomic(): zarr_archive: ZarrArchive = get_object_or_404(queryset, zarr_id=zarr_id) if zarr_archive.status == ZarrArchiveStatus.INGESTING: @@ -218,8 +217,7 @@ def upload(self, request, zarr_id): @action(methods=['POST'], url_path='upload/complete', detail=True) def upload_complete(self, request, zarr_id): """Finish an upload of files to a zarr archive.""" - # reset select_related to prevent locking additional rows - queryset = self.get_queryset().select_related(None).select_for_update() + queryset = self.get_queryset().select_for_update(of=['self']) with transaction.atomic(): zarr_archive: ZarrArchive = get_object_or_404(queryset, zarr_id=zarr_id) if not self.request.user.has_perm('owner', zarr_archive.dandiset):