Skip to content

Commit

Permalink
Fixed #19640 - Added inlineformset_factory to reference docs.
Browse files Browse the repository at this point in the history
Thanks wim@ for the suggestion.
  • Loading branch information
timgraham committed Jan 22, 2013
1 parent e535da6 commit 5b2d9ba
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 8 deletions.
4 changes: 2 additions & 2 deletions docs/ref/contrib/admin/index.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
17 changes: 14 additions & 3 deletions docs/ref/forms/models.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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.
9 changes: 6 additions & 3 deletions docs/topics/forms/modelforms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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::

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

.. highlight:: python

.. _inline-formsets:

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

Expand All @@ -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``.

Expand All @@ -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")

Expand Down

0 comments on commit 5b2d9ba

Please sign in to comment.