summaryrefslogtreecommitdiff
path: root/django/forms/fields.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/forms/fields.py')
-rw-r--r--django/forms/fields.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/django/forms/fields.py b/django/forms/fields.py
index c06352a964..7a59a3d664 100644
--- a/django/forms/fields.py
+++ b/django/forms/fields.py
@@ -279,6 +279,15 @@ class FloatField(IntegerField):
raise ValidationError(self.error_messages['invalid'], code='invalid')
return value
+ def validate(self, value):
+ super(FloatField, self).validate(value)
+
+ # Check for NaN (which is the only thing not equal to itself) and +/- infinity
+ if value != value or value in (Decimal('Inf'), Decimal('-Inf')):
+ raise ValidationError(self.error_messages['invalid'], code='invalid')
+
+ return value
+
def widget_attrs(self, widget):
attrs = super(FloatField, self).widget_attrs(widget)
if isinstance(widget, NumberInput):