Fixed #19640 - Added inlineformset_factory to reference docs.

Thanks wim@ for the suggestion.
This commit is contained in:
Tim Graham 2013-01-22 06:46:22 -05:00
parent e535da6865
commit 5b2d9bacd2
3 changed files with 22 additions and 8 deletions

View File

@ -1520,8 +1520,8 @@ The ``InlineModelAdmin`` class adds:
.. attribute:: InlineModelAdmin.form .. attribute:: InlineModelAdmin.form
The value for ``form`` defaults to ``ModelForm``. This is what is passed The value for ``form`` defaults to ``ModelForm``. This is what is passed
through to ``inlineformset_factory`` when creating the formset for this through to :func:`~django.forms.models.inlineformset_factory` when
inline. creating the formset for this inline.
.. attribute:: InlineModelAdmin.extra .. attribute:: InlineModelAdmin.extra

View File

@ -5,7 +5,7 @@ Model Form Functions
.. module:: django.forms.models .. module:: django.forms.models
:synopsis: Django's functions for building model forms and formsets. :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``. 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 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. 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. Returns a ``FormSet`` class for the given ``model`` class.
Arguments ``model``, ``form``, ``fields``, ``exclude``, and Arguments ``model``, ``form``, ``fields``, ``exclude``, and
``formfield_callback`` are all passed through to ``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 Arguments ``formset``, ``extra``, ``max_num``, ``can_order``, and
``can_delete`` are passed through to ``formset_factory``. See ``can_delete`` are passed through to ``formset_factory``. See
:ref:`formsets` for details. :ref:`formsets` for details.
See :ref:`model-formsets` for example usage. 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.

View File

@ -550,7 +550,7 @@ ModelForm factory function
-------------------------- --------------------------
You can create forms from a given model using the standalone 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 definition. This may be more convenient if you do not have many customizations
to make:: to make::
@ -857,6 +857,8 @@ primary key that isn't called ``id``, make sure it gets rendered.)
.. highlight:: python .. highlight:: python
.. _inline-formsets:
Inline formsets Inline formsets
=============== ===============
@ -881,7 +883,7 @@ a particular author, you could do this::
.. note:: .. note::
``inlineformset_factory`` uses :func:`~django.forms.models.inlineformset_factory` uses
:func:`~django.forms.models.modelformset_factory` and marks :func:`~django.forms.models.modelformset_factory` and marks
``can_delete=True``. ``can_delete=True``.
@ -901,7 +903,8 @@ the following model::
to_friend = models.ForeignKey(Friend) to_friend = models.ForeignKey(Friend)
length_in_months = models.IntegerField() 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") >>> FriendshipFormSet = inlineformset_factory(Friend, Friendship, fk_name="from_friend")