diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt index e2cfb59df2..8e419c7b5b 100644 --- a/docs/ref/forms/fields.txt +++ b/docs/ref/forms/fields.txt @@ -409,7 +409,7 @@ For each field, we describe the default widget used if you don't specify The ``invalid_choice`` error message may contain ``%(value)s``, which will be replaced with the selected choice. - Takes one extra required argument: + Takes one extra argument: .. attribute:: choices @@ -419,6 +419,7 @@ For each field, we describe the default widget used if you don't specify model field. See the :ref:`model field reference documentation on choices ` for more details. If the argument is a callable, it is evaluated each time the field's form is initialized. + Defaults to an emtpy list. ``TypedChoiceField`` -------------------- diff --git a/tests/forms_tests/field_tests/test_choicefield.py b/tests/forms_tests/field_tests/test_choicefield.py index 1d8fe5a3cf..ad773615ae 100644 --- a/tests/forms_tests/field_tests/test_choicefield.py +++ b/tests/forms_tests/field_tests/test_choicefield.py @@ -55,6 +55,10 @@ class ChoiceFieldTest(FormFieldAssertionsMixin, SimpleTestCase): with self.assertRaisesMessage(ValidationError, msg): f.clean('6') + def test_choicefield_choices_default(self): + f = ChoiceField() + self.assertEqual(f.choices, []) + def test_choicefield_callable(self): def choices(): return [('J', 'John'), ('P', 'Paul')]