From 31e6806d76d532e6afb43b0cfced1ef21e9e4132 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Thu, 27 Nov 2025 10:06:08 -0800 Subject: [PATCH] Do the clear in one operation --- src/documents/signals/handlers.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/documents/signals/handlers.py b/src/documents/signals/handlers.py index 48df739d8..e410b54e2 100644 --- a/src/documents/signals/handlers.py +++ b/src/documents/signals/handlers.py @@ -547,12 +547,12 @@ def process_cf_select_update(custom_field: CustomField): for option in custom_field.extra_data.get("select_options", []) } - for cf_instance in custom_field.fields.select_related("document").iterator(): - # Check if the current value is still a valid option - if cf_instance.value not in select_options: - cf_instance.value_select = None - cf_instance.save(update_fields=["value_select"]) + # Clear select values that no longer exist + custom_field.fields.exclude( + value_select__in=select_options.keys(), + ).update(value_select=None) + for cf_instance in custom_field.fields.select_related("document").iterator(): # Update the filename and move files if necessary update_filename_and_move_files(CustomFieldInstance, cf_instance)