Index: tests/regressiontests/datatypes/models.py
===================================================================
--- tests/regressiontests/datatypes/models.py	(revision 6328)
+++ tests/regressiontests/datatypes/models.py	(working copy)
@@ -17,9 +17,18 @@
     class Meta:
         ordering = ('consumed_at',)
 
-    def __str__(self):
+    def __unicode__(self):
         return self.name
 
+
+class FloatFieldModel(models.Model):
+    """#4287: Test model for storing inf, -inf, nan in a FloatField."""
+    field = models.FloatField()
+
+    def __unicode__(self):
+        return unicode(self.field)
+
+
 __test__ = {'API_TESTS': """
 # No donuts are in the system yet.
 >>> Donut.objects.all()
@@ -56,4 +65,24 @@
 datetime.time(5, 30)
 >>> d3.consumed_at
 datetime.datetime(2007, 4, 20, 16, 19, 59)
+
+>>> import math
+>>> f0 = FloatFieldModel(field=math.pi)
+>>> f0.save()
+
+>>> f1 = FloatFieldModel(field=float('inf'))
+>>> f1.save()
+
+>>> f2 = FloatFieldModel(field=float('-inf'))
+>>> f2.save()
+
+>>> f3 = FloatFieldModel(field=float('nan'))
+>>> f3.save()
+
+>>> FloatFieldModel.objects.all()
+[<FloatFieldModel: 3.14159265359>, <FloatFieldModel: inf>, <FloatFieldModel: -inf>, <FloatFieldModel: nan>]
+
+>>> FloatFieldModel.objects.order_by('field')
+[<FloatFieldModel: -inf>, <FloatFieldModel: 3.14159265359>, <FloatFieldModel: inf>, <FloatFieldModel: nan>]
+
 """}
