summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/db/models/fields/__init__.py2
-rw-r--r--tests/model_fields/tests.py6
2 files changed, 7 insertions, 1 deletions
diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index d9e2bac348..77117009ab 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -850,7 +850,7 @@ class Field(RegisterLookupMixin):
for k in list(kwargs):
if k not in ('coerce', 'empty_value', 'choices', 'required',
'widget', 'label', 'initial', 'help_text',
- 'error_messages', 'show_hidden_initial'):
+ 'error_messages', 'show_hidden_initial', 'disabled'):
del kwargs[k]
defaults.update(kwargs)
if form_class is None:
diff --git a/tests/model_fields/tests.py b/tests/model_fields/tests.py
index 76b3e5596a..fc197cf0c4 100644
--- a/tests/model_fields/tests.py
+++ b/tests/model_fields/tests.py
@@ -54,6 +54,12 @@ class BasicFieldTests(TestCase):
klass = forms.TypedMultipleChoiceField
self.assertIsInstance(field.formfield(choices_form_class=klass), klass)
+ def test_formfield_disabled(self):
+ """Field.formfield() sets disabled for fields with choices."""
+ field = models.CharField(choices=[('a', 'b')])
+ form_field = field.formfield(disabled=True)
+ self.assertIs(form_field.disabled, True)
+
def test_field_str(self):
f = models.Field()
self.assertEqual(str(f), '<django.db.models.fields.Field>')