diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-11-29 19:30:38 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2007-11-29 19:30:38 +0000 |
| commit | 29892d02fa9c9ab3e48a18a143408abc3c88716e (patch) | |
| tree | 05773a30e8c6e9005075c9fc21dbae346f8a2b25 | |
| parent | 7a166f1a1c126bea547ad00387ff134ee4743b1c (diff) | |
Fixed #6014 -- More robust error handling when validating decimal fields.
Thanks, pigletto.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@6746 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/newforms/fields.py | 4 | ||||
| -rw-r--r-- | tests/regressiontests/forms/fields.py | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/django/newforms/fields.py b/django/newforms/fields.py index 9b1253de1f..4a54a98d61 100644 --- a/django/newforms/fields.py +++ b/django/newforms/fields.py @@ -17,7 +17,7 @@ except NameError: from sets import Set as set from django.utils.translation import ugettext_lazy as _ -from django.utils.encoding import StrAndUnicode, smart_unicode +from django.utils.encoding import StrAndUnicode, smart_unicode, smart_str from util import ErrorList, ValidationError from widgets import TextInput, PasswordInput, HiddenInput, MultipleHiddenInput, FileInput, CheckboxInput, Select, NullBooleanSelect, SelectMultiple, DateTimeInput @@ -235,7 +235,7 @@ class DecimalField(Field): super(DecimalField, self).clean(value) if not self.required and value in EMPTY_VALUES: return None - value = str(value).strip() + value = smart_str(value).strip() try: value = Decimal(value) except DecimalException: diff --git a/tests/regressiontests/forms/fields.py b/tests/regressiontests/forms/fields.py index 1c436ce680..cff5db6fca 100644 --- a/tests/regressiontests/forms/fields.py +++ b/tests/regressiontests/forms/fields.py @@ -323,6 +323,10 @@ Decimal("3.14") Traceback (most recent call last): ... ValidationError: [u'Enter a number.'] +>>> f.clean(u'łąść') +Traceback (most recent call last): +... +ValidationError: [u'Enter a number.'] >>> f.clean('1.0 ') Decimal("1.0") >>> f.clean(' 1.0') |
