From f5c4bbc6a8768af21f52d7fc1ae2664738cab648 Mon Sep 17 00:00:00 2001 From: ribsey Date: Wed, 12 Aug 2026 06:38:46 +0000 Subject: [PATCH] reset errors on update (#12550) * reset errors on update * add empty line --------- Co-authored-by: Oliver --- src/backend/InvenTree/importer/serializers.py | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/backend/InvenTree/importer/serializers.py b/src/backend/InvenTree/importer/serializers.py index c738853e08..566322e310 100644 --- a/src/backend/InvenTree/importer/serializers.py +++ b/src/backend/InvenTree/importer/serializers.py @@ -180,6 +180,28 @@ class DataImportRowSerializer(InvenTreeModelSerializer): 'complete', ] + def update(self, instance, validated_data): + """Allow manual editing of extracted row data. + + This is used by the importer UI when a user manually corrects a row, + for example by selecting a missing foreign-key target. In that case, + the edited ``data`` payload must become the source of truth for + subsequent validation, rather than being silently ignored in favor of + the original ``row_data`` extracted from the import file. + """ + if 'data' in validated_data: + instance.data = validated_data['data'] + + # Clear stale validation state so the row is re-evaluated against + # the manually edited data on save() + instance.errors = None + + # A manually edited row is not yet committed, even if it had + # previously reached a completed state + instance.complete = False + + return super().update(instance, validated_data) + class DataImportAcceptRowSerializer(serializers.Serializer): """Serializer for accepting rows of data."""