summaryrefslogtreecommitdiff
path: root/django/contrib/postgres/forms/array.py
diff options
context:
space:
mode:
authorPavel Dedik <pavel.dedik@kiwi.com>2019-10-25 14:41:34 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2019-10-28 10:32:34 +0100
commit711a7d4d50c1ef194a4a71e68ce7fa38fcb5103f (patch)
tree294d0f0cbdc77d51cbcf9cd2e064a34789e97c06 /django/contrib/postgres/forms/array.py
parentbcfbb71c63092f4bc0fa5cc3f82ece2c986e3168 (diff)
Fixed #30907 -- Fixed SplitArrayField.has_changed() with removal of empty trailing values.
Diffstat (limited to 'django/contrib/postgres/forms/array.py')
-rw-r--r--django/contrib/postgres/forms/array.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/django/contrib/postgres/forms/array.py b/django/contrib/postgres/forms/array.py
index d16a51c2e7..2e19cd574a 100644
--- a/django/contrib/postgres/forms/array.py
+++ b/django/contrib/postgres/forms/array.py
@@ -221,3 +221,14 @@ class SplitArrayField(forms.Field):
if errors:
raise ValidationError(list(chain.from_iterable(errors)))
return cleaned_data
+
+ def has_changed(self, initial, data):
+ try:
+ data = self.to_python(data)
+ except ValidationError:
+ pass
+ else:
+ data, _ = self._remove_trailing_nulls(data)
+ if initial in self.empty_values and data in self.empty_values:
+ return False
+ return super().has_changed(initial, data)