summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2013-07-21 22:26:03 +0200
committerClaude Paroz <claude@2xlibre.net>2013-07-22 09:07:04 +0200
commit816bf0c6a7a13efb7ae17c9773f984f2dd16fc72 (patch)
tree1a1c4ea185c609d4a5ca2e61afdb36e5a567e5b2
parent48516d3b853e99600c60fed26b5c12ed3fc4a4d8 (diff)
[1.6.x] Fixed #20781 -- Fixed _has_changed regression with MultiValueField
Thanks Tim Graham for the report. Backport of 02b0106d from master.
-rw-r--r--django/forms/fields.py2
-rw-r--r--tests/forms_tests/tests/test_extra.py2
-rw-r--r--tests/forms_tests/tests/test_fields.py1
3 files changed, 3 insertions, 2 deletions
diff --git a/django/forms/fields.py b/django/forms/fields.py
index 7711cd65ad..a794c02e9f 100644
--- a/django/forms/fields.py
+++ b/django/forms/fields.py
@@ -1025,7 +1025,7 @@ class MultiValueField(Field):
if not isinstance(initial, list):
initial = self.widget.decompress(initial)
for field, initial, data in zip(self.fields, initial, data):
- if field._has_changed(initial, data):
+ if field._has_changed(field.to_python(initial), data):
return True
return False
diff --git a/tests/forms_tests/tests/test_extra.py b/tests/forms_tests/tests/test_extra.py
index ea0f063c30..d439e2223c 100644
--- a/tests/forms_tests/tests/test_extra.py
+++ b/tests/forms_tests/tests/test_extra.py
@@ -391,7 +391,7 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin):
def decompress(self, value):
if value:
data = value.split(',')
- return [data[0], data[1], datetime.datetime.strptime(data[2], "%Y-%m-%d %H:%M:%S")]
+ return [data[0], list(data[1]), datetime.datetime.strptime(data[2], "%Y-%m-%d %H:%M:%S")]
return [None, None, None]
def format_output(self, rendered_widgets):
diff --git a/tests/forms_tests/tests/test_fields.py b/tests/forms_tests/tests/test_fields.py
index dab67b4366..f02593e488 100644
--- a/tests/forms_tests/tests/test_fields.py
+++ b/tests/forms_tests/tests/test_fields.py
@@ -1247,6 +1247,7 @@ class FieldsTests(SimpleTestCase):
def test_splitdatetimefield_changed(self):
f = SplitDateTimeField(input_date_formats=['%d/%m/%Y'])
+ self.assertFalse(f._has_changed(['11/01/2012', '09:18:15'], ['11/01/2012', '09:18:15']))
self.assertTrue(f._has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['2008-05-06', '12:40:00']))
self.assertFalse(f._has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['06/05/2008', '12:40']))
self.assertTrue(f._has_changed(datetime.datetime(2008, 5, 6, 12, 40, 00), ['06/05/2008', '12:41']))