diff --git a/docs/release-notes/version-3.0.md b/docs/release-notes/version-3.0.md index 644a2e652..4b0a93c75 100644 --- a/docs/release-notes/version-3.0.md +++ b/docs/release-notes/version-3.0.md @@ -25,6 +25,7 @@ * [#7279](https://github.com/netbox-community/netbox/issues/7279) - Fix exception when tracing cable with no associated path * [#7282](https://github.com/netbox-community/netbox/issues/7282) - Fix KeyError exception when `INSECURE_SKIP_TLS_VERIFY` is true * [#7298](https://github.com/netbox-community/netbox/issues/7298) - Restore missing object names from applied object list filters +* [#7301](https://github.com/netbox-community/netbox/issues/7301) - Fix exception when deleting a large number of child prefixes --- diff --git a/netbox/netbox/views/generic.py b/netbox/netbox/views/generic.py index 0d4f89d0f..b05033128 100644 --- a/netbox/netbox/views/generic.py +++ b/netbox/netbox/views/generic.py @@ -1010,10 +1010,10 @@ class BulkDeleteView(GetReturnURLMixin, ObjectPermissionRequiredMixin, View): # Are we deleting *all* objects in the queryset or just a selected subset? if request.POST.get('_all'): + qs = model.objects.all() if self.filterset is not None: - pk_list = [obj.pk for obj in self.filterset(request.GET, model.objects.only('pk')).qs] - else: - pk_list = model.objects.values_list('pk', flat=True) + qs = self.filterset(request.GET, qs).qs + pk_list = qs.only('pk').values_list('pk', flat=True) else: pk_list = [int(pk) for pk in request.POST.getlist('pk')]