Author: jbronn
Date: 2010-09-11 16:28:00 -0500 (Sat, 11 Sep 2010)
New Revision: 13754
Modified:
django/branches/releases/1.2.X/django/forms/fields.py
django/branches/releases/1.2.X/tests/regressiontests/forms/widgets.py
Log:
[1.2.X] Fixed #13390 -- `SplitDateTimeWidget` now recognizes when it's no
longer required. Thanks vaxXxa for bug report and patch.
Backport of r13753 from trunk.
Modified: django/branches/releases/1.2.X/django/forms/fields.py
===================================================================
--- django/branches/releases/1.2.X/django/forms/fields.py 2010-09-11
21:26:19 UTC (rev 13753)
+++ django/branches/releases/1.2.X/django/forms/fields.py 2010-09-11
21:28:00 UTC (rev 13754)
@@ -399,6 +399,8 @@
# components: date and time.
if len(value) != 2:
raise ValidationError(self.error_messages['invalid'])
+ if value[0] in validators.EMPTY_VALUES and value[1] in
validators.EMPTY_VALUES:
+ return None
value = '%s %s' % tuple(value)
for format in self.input_formats or
formats.get_format('DATETIME_INPUT_FORMATS'):
try:
Modified: django/branches/releases/1.2.X/tests/regressiontests/forms/widgets.py
===================================================================
--- django/branches/releases/1.2.X/tests/regressiontests/forms/widgets.py
2010-09-11 21:26:19 UTC (rev 13753)
+++ django/branches/releases/1.2.X/tests/regressiontests/forms/widgets.py
2010-09-11 21:28:00 UTC (rev 13754)
@@ -1310,3 +1310,21 @@
# w2 ought to be independent of w1, since MultiWidget ought
# to make a copy of its sub-widgets when it is copied.
self.assertEqual(w1.choices, [1,2,3])
+
+ def test_13390(self):
+ # See ticket #13390
+ class SplitDateForm(forms.Form):
+ field = forms.DateTimeField(widget=forms.SplitDateTimeWidget,
required=False)
+
+ form = SplitDateForm({'field': ''})
+ self.assertTrue(form.is_valid())
+ form = SplitDateForm({'field': ['', '']})
+ self.assertTrue(form.is_valid())
+
+ class SplitDateRequiredForm(forms.Form):
+ field = forms.DateTimeField(widget=forms.SplitDateTimeWidget,
required=True)
+
+ form = SplitDateRequiredForm({'field': ''})
+ self.assertFalse(form.is_valid())
+ form = SplitDateRequiredForm({'field': ['', '']})
+ self.assertFalse(form.is_valid())
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en.