summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorDavid Smith <smithdc@gmail.com>2020-06-19 22:46:25 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-06-24 09:26:25 +0200
commit162765d6c3182e36095d29543e21b44b908625fc (patch)
tree73e252e23ec3986a4a7a2750c5ff36c7e2ed0330 /docs
parent2e8941b6f90e65ffad3f07083b8de59e8ed29767 (diff)
Fixed #9061 -- Allowed FormSets to disable deleting extra forms.
Thanks to Dan Ward for the initial patch.
Diffstat (limited to 'docs')
-rw-r--r--docs/ref/forms/formsets.txt4
-rw-r--r--docs/ref/forms/models.txt13
-rw-r--r--docs/releases/3.2.txt5
-rw-r--r--docs/topics/forms/formsets.txt12
4 files changed, 26 insertions, 8 deletions
diff --git a/docs/ref/forms/formsets.txt b/docs/ref/forms/formsets.txt
index e145eeb103..0e281f2f59 100644
--- a/docs/ref/forms/formsets.txt
+++ b/docs/ref/forms/formsets.txt
@@ -11,7 +11,7 @@ Formset API reference. For introductory material about formsets, see the
``formset_factory``
===================
-.. function:: formset_factory(form, formset=BaseFormSet, extra=1, can_order=False, can_delete=False, max_num=None, validate_max=False, min_num=None, validate_min=False, absolute_max=None)
+.. function:: formset_factory(form, formset=BaseFormSet, extra=1, can_order=False, can_delete=False, max_num=None, validate_max=False, min_num=None, validate_min=False, absolute_max=None, can_delete_extra=True)
Returns a ``FormSet`` class for the given ``form`` class.
@@ -19,4 +19,4 @@ Formset API reference. For introductory material about formsets, see the
.. versionchanged:: 3.2
- The ``absolute_max`` argument was added.
+ The ``absolute_max`` and ``can_delete_extra`` arguments were added.
diff --git a/docs/ref/forms/models.txt b/docs/ref/forms/models.txt
index e18660b3c2..9041385409 100644
--- a/docs/ref/forms/models.txt
+++ b/docs/ref/forms/models.txt
@@ -52,7 +52,7 @@ Model Form API reference. For introductory material about model forms, see the
``modelformset_factory``
========================
-.. 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, widgets=None, validate_max=False, localized_fields=None, labels=None, help_texts=None, error_messages=None, min_num=None, validate_min=False, field_classes=None, absolute_max=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, widgets=None, validate_max=False, localized_fields=None, labels=None, help_texts=None, error_messages=None, min_num=None, validate_min=False, field_classes=None, absolute_max=None, can_delete_extra=True)
Returns a ``FormSet`` class for the given ``model`` class.
@@ -62,20 +62,21 @@ Model Form API reference. For introductory material about model forms, see the
through to :func:`~django.forms.models.modelform_factory`.
Arguments ``formset``, ``extra``, ``max_num``, ``can_order``,
- ``can_delete``, ``validate_max``, and ``absolute_max`` are passed through
- to :func:`~django.forms.formsets.formset_factory`. See :doc:`formsets
+ ``can_delete``, ``can_delete_extra``,``validate_max``, and
+ ``absolute_max`` are passed through to
+ :func:`~django.forms.formsets.formset_factory`. See :doc:`formsets
</topics/forms/formsets>` for details.
See :ref:`model-formsets` for example usage.
.. versionchanged:: 3.2
- The ``absolute_max`` argument was added.
+ The ``absolute_max`` and ``can_delete_extra`` arguments were added.
``inlineformset_factory``
=========================
-.. 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, widgets=None, validate_max=False, localized_fields=None, labels=None, help_texts=None, error_messages=None, min_num=None, validate_min=False, field_classes=None, absolute_max=None)
+.. 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, widgets=None, validate_max=False, localized_fields=None, labels=None, help_texts=None, error_messages=None, min_num=None, validate_min=False, field_classes=None, absolute_max=None, can_delete_extra=True)
Returns an ``InlineFormSet`` using :func:`modelformset_factory` with
defaults of ``formset=``:class:`~django.forms.models.BaseInlineFormSet`,
@@ -88,4 +89,4 @@ Model Form API reference. For introductory material about model forms, see the
.. versionchanged:: 3.2
- The ``absolute_max`` argument was added.
+ The ``absolute_max`` and ``can_delete_extra`` arguments were added.
diff --git a/docs/releases/3.2.txt b/docs/releases/3.2.txt
index 4308d142e8..3cc39ff285 100644
--- a/docs/releases/3.2.txt
+++ b/docs/releases/3.2.txt
@@ -158,6 +158,11 @@ Forms
customizing the maximum number of forms that can be instantiated when
supplying ``POST`` data. See :ref:`formsets-absolute-max` for more details.
+* The new ``can_delete_extra`` argument for :func:`.formset_factory`,
+ :func:`.inlineformset_factory`, and :func:`.modelformset_factory` allows
+ removal of the option to delete extra forms. See
+ :attr:`~.BaseFormSet.can_delete_extra` for more information.
+
Generic Views
~~~~~~~~~~~~~
diff --git a/docs/topics/forms/formsets.txt b/docs/topics/forms/formsets.txt
index b3e696ed8c..b7be5eac4f 100644
--- a/docs/topics/forms/formsets.txt
+++ b/docs/topics/forms/formsets.txt
@@ -593,6 +593,18 @@ On the other hand, if you are using a plain ``FormSet``, it's up to you to
handle ``formset.deleted_forms``, perhaps in your formset's ``save()`` method,
as there's no general notion of what it means to delete a form.
+``can_delete_extra``
+--------------------
+
+.. versionadded:: 3.2
+
+.. attribute:: BaseFormSet.can_delete_extra
+
+Default: ``True``
+
+While setting ``can_delete=True``, specifying ``can_delete_extra=False`` will
+remove the option to delete extra forms.
+
Adding additional fields to a formset
=====================================