From c255f584dd7569fa264439183caa207dfd33c231 Mon Sep 17 00:00:00 2001 From: tdruez Date: Tue, 28 May 2024 18:35:33 +0400 Subject: [PATCH] Skip the PURL fields in update_from_data #45 Signed-off-by: tdruez --- dje/models.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dje/models.py b/dje/models.py index 794e811d..ecacf237 100644 --- a/dje/models.py +++ b/dje/models.py @@ -61,6 +61,9 @@ " either nexB master reference data or installation-specific data." ) +# PackageURL._fields +PURL_FIELDS = ("type", "namespace", "name", "version", "qualifiers", "subpath") + def is_dataspace_related(model_class): """ @@ -759,7 +762,12 @@ def update_from_data(self, user, data, override=False): updated_fields = [] for field_name, value in data.items(): - if value in EMPTY_VALUES or field_name not in model_fields: + skip_reasons = [ + value in EMPTY_VALUES, + field_name not in model_fields, + field_name in PURL_FIELDS, + ] + if any(skip_reasons): continue current_value = getattr(self, field_name, None) @@ -769,7 +777,7 @@ def update_from_data(self, user, data, override=False): if updated_fields: self.last_modified_by = user - self.save() + self.save(update_fields=updated_fields) return updated_fields