diff --git a/django/forms/models.py b/django/forms/models.py index 75d526d1736..3905e9e902d 100644 --- a/django/forms/models.py +++ b/django/forms/models.py @@ -917,7 +917,8 @@ class ModelChoiceIterator(object): yield self.choice(obj) def __len__(self): - return len(self.queryset) + return len(self.queryset) +\ + (1 if self.field.empty_label is not None else 0) def choice(self, obj): return (self.field.prepare_value(obj), self.field.label_from_instance(obj)) diff --git a/tests/modeltests/model_forms/tests.py b/tests/modeltests/model_forms/tests.py index efaf2981e13..f9ef61536cc 100644 --- a/tests/modeltests/model_forms/tests.py +++ b/tests/modeltests/model_forms/tests.py @@ -989,6 +989,7 @@ class OldFormForXTests(TestCase): (c2.pk, "It's a test"), (c3.pk, 'Third'), (c4.pk, 'Fourth')]) + self.assertEqual(5, len(f.choices)) with self.assertRaises(ValidationError): f.clean('') with self.assertRaises(ValidationError):