mirror of https://github.com/django/django.git
Fixed #5355 -- Fixed data cleaning for DecimalField.
In passing, fixed a problem with cleaning in IntegerField. Includes tests from PhiR. git-svn-id: http://code.djangoproject.com/svn/django/trunk@6282 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
7ca1a04633
commit
885db3cb79
|
@ -144,7 +144,7 @@ class IntegerField(Field):
|
||||||
if value in EMPTY_VALUES:
|
if value in EMPTY_VALUES:
|
||||||
return None
|
return None
|
||||||
try:
|
try:
|
||||||
value = int(value)
|
value = int(str(value))
|
||||||
except (ValueError, TypeError):
|
except (ValueError, TypeError):
|
||||||
raise ValidationError(ugettext(u'Enter a whole number.'))
|
raise ValidationError(ugettext(u'Enter a whole number.'))
|
||||||
if self.max_value is not None and value > self.max_value:
|
if self.max_value is not None and value > self.max_value:
|
||||||
|
@ -192,7 +192,7 @@ class DecimalField(Field):
|
||||||
super(DecimalField, self).clean(value)
|
super(DecimalField, self).clean(value)
|
||||||
if not self.required and value in EMPTY_VALUES:
|
if not self.required and value in EMPTY_VALUES:
|
||||||
return None
|
return None
|
||||||
value = value.strip()
|
value = str(value).strip()
|
||||||
try:
|
try:
|
||||||
value = Decimal(value)
|
value = Decimal(value)
|
||||||
except DecimalException:
|
except DecimalException:
|
||||||
|
|
|
@ -961,6 +961,12 @@ True
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
ValidationError: [u'Enter a whole number.']
|
ValidationError: [u'Enter a whole number.']
|
||||||
|
>>> f.clean(42)
|
||||||
|
42
|
||||||
|
>>> f.clean(3.14)
|
||||||
|
Traceback (most recent call last):
|
||||||
|
...
|
||||||
|
ValidationError: [u'Enter a whole number.']
|
||||||
>>> f.clean('1 ')
|
>>> f.clean('1 ')
|
||||||
1
|
1
|
||||||
>>> f.clean(' 1')
|
>>> f.clean(' 1')
|
||||||
|
@ -1084,6 +1090,10 @@ True
|
||||||
23.0
|
23.0
|
||||||
>>> f.clean('3.14')
|
>>> f.clean('3.14')
|
||||||
3.1400000000000001
|
3.1400000000000001
|
||||||
|
>>> f.clean(3.14)
|
||||||
|
3.1400000000000001
|
||||||
|
>>> f.clean(42)
|
||||||
|
42.0
|
||||||
>>> f.clean('a')
|
>>> f.clean('a')
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
|
@ -1142,6 +1152,10 @@ True
|
||||||
Decimal("23")
|
Decimal("23")
|
||||||
>>> f.clean('3.14')
|
>>> f.clean('3.14')
|
||||||
Decimal("3.14")
|
Decimal("3.14")
|
||||||
|
>>> f.clean(3.14)
|
||||||
|
Decimal("3.14")
|
||||||
|
>>> f.clean(Decimal('3.14'))
|
||||||
|
Decimal("3.14")
|
||||||
>>> f.clean('a')
|
>>> f.clean('a')
|
||||||
Traceback (most recent call last):
|
Traceback (most recent call last):
|
||||||
...
|
...
|
||||||
|
|
Loading…
Reference in New Issue