summaryrefslogtreecommitdiff
path: root/django/newforms/fields.py
diff options
context:
space:
mode:
authorJeremy Dunck <jdunck@gmail.com>2007-06-25 19:33:37 +0000
committerJeremy Dunck <jdunck@gmail.com>2007-06-25 19:33:37 +0000
commitfc779fe55aec84994e7e761c743716ba03484bcc (patch)
treed139f5ce44133e630c7bb1b965baa3120ba23c99 /django/newforms/fields.py
parentb0a56a9919d2304fa08b71373b53fdfb5ca72de9 (diff)
gis: Merged revisions 5491-5539 via svnmerge from
http://code.djangoproject.com/svn/django/trunk git-svn-id: http://code.djangoproject.com/svn/django/branches/gis@5540 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/newforms/fields.py')
-rw-r--r--django/newforms/fields.py22
1 files changed, 15 insertions, 7 deletions
diff --git a/django/newforms/fields.py b/django/newforms/fields.py
index b73dd181e6..167281a061 100644
--- a/django/newforms/fields.py
+++ b/django/newforms/fields.py
@@ -27,9 +27,9 @@ __all__ = (
EMPTY_VALUES = (None, '')
try:
- set # Only available in Python 2.4+
+ set
except NameError:
- from sets import Set as set # Python 2.3 fallback
+ from sets import Set as set # Python 2.3 fallback
try:
from decimal import Decimal
@@ -516,11 +516,13 @@ class MultiValueField(Field):
"""
clean_data = []
errors = ErrorList()
- if self.required and not value:
- raise ValidationError(gettext(u'This field is required.'))
- elif not self.required and not value:
- return self.compress([])
- if not isinstance(value, (list, tuple)):
+ if not value or isinstance(value, (list, tuple)):
+ if not value or not [v for v in value if v not in EMPTY_VALUES]:
+ if self.required:
+ raise ValidationError(gettext(u'This field is required.'))
+ else:
+ return self.compress([])
+ else:
raise ValidationError(gettext(u'Enter a list of values.'))
for i, field in enumerate(self.fields):
try:
@@ -558,5 +560,11 @@ class SplitDateTimeField(MultiValueField):
def compress(self, data_list):
if data_list:
+ # Raise a validation error if time or date is empty
+ # (possible if SplitDateTimeField has required=False).
+ if data_list[0] in EMPTY_VALUES:
+ raise ValidationError(gettext(u'Enter a valid date.'))
+ if data_list[1] in EMPTY_VALUES:
+ raise ValidationError(gettext(u'Enter a valid time.'))
return datetime.datetime.combine(*data_list)
return None