Fixed #12215: Added len to ModelChoiceIterator. Thanks Alex and Tobias.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@11850 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
6a7db77e95
commit
125403ca97
|
@ -910,6 +910,9 @@ class ModelChoiceIterator(object):
|
||||||
for obj in self.queryset.all():
|
for obj in self.queryset.all():
|
||||||
yield self.choice(obj)
|
yield self.choice(obj)
|
||||||
|
|
||||||
|
def __len__(self):
|
||||||
|
return len(self.queryset)
|
||||||
|
|
||||||
def choice(self, obj):
|
def choice(self, obj):
|
||||||
if self.field.to_field_name:
|
if self.field.to_field_name:
|
||||||
key = obj.serializable_value(self.field.to_field_name)
|
key = obj.serializable_value(self.field.to_field_name)
|
||||||
|
|
|
@ -101,3 +101,15 @@ class CustomFieldSaveTests(TestCase):
|
||||||
# generate an AssertionError if it is called more than once during save.
|
# generate an AssertionError if it is called more than once during save.
|
||||||
form = CFFForm(data = {'f': None})
|
form = CFFForm(data = {'f': None})
|
||||||
form.save()
|
form.save()
|
||||||
|
|
||||||
|
class ModelChoiceIteratorTests(TestCase):
|
||||||
|
def test_len(self):
|
||||||
|
class Form(forms.ModelForm):
|
||||||
|
class Meta:
|
||||||
|
model = Article
|
||||||
|
fields = ["publications"]
|
||||||
|
|
||||||
|
Publication.objects.create(title="Pravda",
|
||||||
|
date_published=date(1991, 8, 22))
|
||||||
|
f = Form()
|
||||||
|
self.assertEqual(len(f.fields["publications"].choices), 1)
|
||||||
|
|
Loading…
Reference in New Issue