Commit 1fa681ee authored by Alasdair Nicol's avatar Alasdair Nicol Committed by Tim Graham
Browse files

Fixed #21539 -- Added example of modelformset_factory's form argument

parent 164a3a38
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -760,6 +760,30 @@ instances of the model, you can specify an empty QuerySet::

   >>> AuthorFormSet(queryset=Author.objects.none())

Changing the ``form``
---------------------

By default, when you use ``modelformset_factory``, a model form will
be created using :func:`~django.forms.models.modelform_factory`.
Often, it can be useful to specify a custom model form. For example,
you can create a custom model form that has custom validation::

    class AuthorForm(forms.ModelForm):
        class Meta:
            model = Author
            fields = ('name', 'title')

        def clean_name(self):
            # custom validation for the name field
            ...

Then, pass your model form to the factory function::

    AuthorFormSet = modelformset_factory(Author, form=AuthorForm)

It is not always necessary to define a custom model form. The
``modelformset_factory`` function has several arguments which are
passed through to ``modelform_factory``, which are described below.

.. _controlling-fields-with-fields-and-exclude: