diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-06-25 12:47:19 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-06-25 12:47:19 +0000 |
| commit | 0ced8b0bb211fca38669293b15316930e0d648fd (patch) | |
| tree | a6f4733859aed03765c396f843770b503c36ec90 /django/newforms/fields.py | |
| parent | f4387422f0a556fb2469500fb9d408306bead02c (diff) | |
unicode: Merged from trunk up to [5530]. Oracle backend has not been ported to
support unicode yet.
git-svn-id: http://code.djangoproject.com/svn/django/branches/unicode@5531 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/newforms/fields.py')
| -rw-r--r-- | django/newforms/fields.py | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/django/newforms/fields.py b/django/newforms/fields.py index 3172488d99..a91e5af450 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(ugettext(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(ugettext(u'This field is required.')) + else: + return self.compress([]) + else: raise ValidationError(ugettext(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(ugettext(u'Enter a valid date.')) + if data_list[1] in EMPTY_VALUES: + raise ValidationError(ugettext(u'Enter a valid time.')) return datetime.datetime.combine(*data_list) return None |
