Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Fixed #19640 - Added inlineformset_factory to reference docs.

Thanks wim@ for the suggestion.
  • Loading branch information...
commit 5b2d9bacd2512bcdf371c05b0b43bc713dcca080 1 parent e535da6
Tim Graham timgraham authored
4 docs/ref/contrib/admin/index.txt
View
@@ -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
17 docs/ref/forms/models.txt
View
@@ -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.
9 docs/topics/forms/modelforms.txt
View
@@ -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")
Please sign in to comment.
Something went wrong with that request. Please try again.