From 244a2d5049fb0b5295270285783cdc7c31c884d6 Mon Sep 17 00:00:00 2001 From: Sergei Maertens Date: Thu, 3 Nov 2022 17:18:29 +0100 Subject: [PATCH] :green_heart: [#2135] -- can't select_for_update nullable columns Fixed select_for_update in Submission.remove_sensitive_data --- src/openforms/submissions/models/submission.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/openforms/submissions/models/submission.py b/src/openforms/submissions/models/submission.py index 5be0848814..9ef9ced274 100644 --- a/src/openforms/submissions/models/submission.py +++ b/src/openforms/submissions/models/submission.py @@ -359,11 +359,15 @@ def remove_sensitive_data(self): self.pseudo = "" self.prefill_data = dict() - steps_qs = self.submissionstep_set.select_related( - "form_step", - "form_step__form_definition", - ) - for submission_step in steps_qs.select_for_update(): + state = self.load_execution_state() + + submission_steps = {step.id: step for step in state.submission_steps} + # lock rows with select_for_update + qs = self.submissionstep_set.filter( + pk__in=submission_steps.keys() + ).select_for_update() + for pk in qs.values_list("pk", flat=True): + submission_step = submission_steps[pk] fields = submission_step.form_step.form_definition.sensitive_fields removed_data = {key: "" for key in fields} submission_step.data.update(removed_data)