Perf: avoid unnecessary full-row fetches in batch permission assignment

set_permissions_for_objects now takes a model + pks instead of instances,
and identity filtering resolves straight to ids, so bulk-editing
permissions no longer materializes full Document/User/Group rows just to
read their pk/id. Row construction for bulk_create is also chunked to
bound peak memory for very large "apply to all" operations.
This commit is contained in:
stumpylog
2026-08-25 09:27:24 -07:00
parent 8780bcd5c7
commit cbac71c165
4 changed files with 45 additions and 19 deletions
+2 -1
View File
@@ -4912,7 +4912,8 @@ class BulkEditObjectsView(PassUserMixin):
if "permissions" in serializer.validated_data:
set_permissions_for_objects(
permissions=permissions,
objects=qs,
model=object_class,
pks=qs.values_list("pk", flat=True),
merge=merge,
)