mirror of
https://github.com/django/django.git
synced 2025-10-24 14:16:09 +00:00
Fixed #26734 -- Made iterator class configurable on ModelChoiceField.
This commit is contained in:
committed by
Tim Graham
parent
ae2a7da86b
commit
5ec64f96b2
@@ -14,8 +14,8 @@ from django.core.validators import ValidationError
|
||||
from django.db import connection, models
|
||||
from django.db.models.query import EmptyQuerySet
|
||||
from django.forms.models import (
|
||||
ModelFormMetaclass, construct_instance, fields_for_model, model_to_dict,
|
||||
modelform_factory,
|
||||
ModelChoiceIterator, ModelFormMetaclass, construct_instance,
|
||||
fields_for_model, model_to_dict, modelform_factory,
|
||||
)
|
||||
from django.template import Context, Template
|
||||
from django.test import SimpleTestCase, TestCase, skipUnlessDBFeature
|
||||
@@ -1573,6 +1573,23 @@ class ModelChoiceFieldTests(TestCase):
|
||||
with self.assertNumQueries(1):
|
||||
template.render(Context({'field': field}))
|
||||
|
||||
def test_modelchoicefield_iterator(self):
|
||||
"""
|
||||
Iterator defaults to ModelChoiceIterator and can be overridden with
|
||||
the iterator attribute on a ModelChoiceField subclass.
|
||||
"""
|
||||
field = forms.ModelChoiceField(Category.objects.all())
|
||||
self.assertIsInstance(field.choices, ModelChoiceIterator)
|
||||
|
||||
class CustomModelChoiceIterator(ModelChoiceIterator):
|
||||
pass
|
||||
|
||||
class CustomModelChoiceField(forms.ModelChoiceField):
|
||||
iterator = CustomModelChoiceIterator
|
||||
|
||||
field = CustomModelChoiceField(Category.objects.all())
|
||||
self.assertIsInstance(field.choices, CustomModelChoiceIterator)
|
||||
|
||||
|
||||
class ModelMultipleChoiceFieldTests(TestCase):
|
||||
def setUp(self):
|
||||
|
||||
Reference in New Issue
Block a user