Commit 5b2d9bac authored by Tim Graham's avatar Tim Graham
Browse files

Fixed #19640 - Added inlineformset_factory to reference docs.

Thanks wim@ for the suggestion.
parent e535da68
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1520,8 +1520,8 @@ The ``InlineModelAdmin`` class adds:
.. attribute:: InlineModelAdmin.form

    The value for ``form`` defaults to ``ModelForm``. This is what is passed
    through to ``inlineformset_factory`` when creating the formset for this
    inline.
    through to :func:`~django.forms.models.inlineformset_factory` when
    creating the formset for this inline.

.. attribute:: InlineModelAdmin.extra

+14 −3
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ Model Form Functions
.. module:: django.forms.models
   :synopsis: Django's functions for building model forms and formsets.

.. method:: modelform_factory(model, form=ModelForm, fields=None, exclude=None, formfield_callback=None,  widgets=None)
.. function:: modelform_factory(model, form=ModelForm, fields=None, exclude=None, formfield_callback=None,  widgets=None)

    Returns a :class:`~django.forms.ModelForm` class for the given ``model``.
    You can optionally pass a ``form`` argument to use as a starting point for
@@ -25,16 +25,27 @@ Model Form Functions

    See :ref:`modelforms-factory` for example usage.

.. method:: modelformset_factory(model, form=ModelForm, formfield_callback=None, formset=BaseModelFormSet, extra=1, can_delete=False, can_order=False, max_num=None, fields=None, exclude=None)
.. function:: modelformset_factory(model, form=ModelForm, formfield_callback=None, formset=BaseModelFormSet, extra=1, can_delete=False, can_order=False, max_num=None, fields=None, exclude=None)

    Returns a ``FormSet`` class for the given ``model`` class.

    Arguments ``model``, ``form``, ``fields``, ``exclude``, and
    ``formfield_callback`` are all passed through to
    :meth:`~django.forms.models.modelform_factory`.
    :func:`~django.forms.models.modelform_factory`.

    Arguments ``formset``, ``extra``, ``max_num``, ``can_order``, and
    ``can_delete`` are passed through to ``formset_factory``. See
    :ref:`formsets` for details.

    See :ref:`model-formsets` for example usage.

.. function:: inlineformset_factory(parent_model, model, form=ModelForm, formset=BaseInlineFormSet, fk_name=None, fields=None, exclude=None, extra=3, can_order=False, can_delete=True, max_num=None, formfield_callback=None)

    Returns an ``InlineFormSet`` using :func:`modelformset_factory` with
    defaults of ``formset=BaseInlineFormSet``, ``can_delete=True``, and
    ``extra=3``.

    If your model has more than one :class:`~django.db.models.ForeignKey` to
    the ``parent_model``, you must specify a ``fk_name``.

    See :ref:`inline-formsets` for example usage.
+6 −3
Original line number Diff line number Diff line
@@ -550,7 +550,7 @@ ModelForm factory function
--------------------------

You can create forms from a given model using the standalone function
:class:`~django.forms.models.modelform_factory`, instead of using a class
:func:`~django.forms.models.modelform_factory`, instead of using a class
definition. This may be more convenient if you do not have many customizations
to make::

@@ -857,6 +857,8 @@ primary key that isn't called ``id``, make sure it gets rendered.)

.. highlight:: python

.. _inline-formsets:

Inline formsets
===============

@@ -881,7 +883,7 @@ a particular author, you could do this::

.. note::

    ``inlineformset_factory`` uses
    :func:`~django.forms.models.inlineformset_factory` uses
    :func:`~django.forms.models.modelformset_factory` and marks
    ``can_delete=True``.

@@ -901,7 +903,8 @@ the following model::
        to_friend = models.ForeignKey(Friend)
        length_in_months = models.IntegerField()

To resolve this, you can use ``fk_name`` to ``inlineformset_factory``::
To resolve this, you can use ``fk_name`` to
:func:`~django.forms.models.inlineformset_factory`::

    >>> FriendshipFormSet = inlineformset_factory(Friend, Friendship, fk_name="from_friend")