summaryrefslogtreecommitdiff
path: root/docs/topics/forms
diff options
context:
space:
mode:
authorTies Jan Hefting <hello@tiesjan.com>2021-08-03 12:27:22 +0200
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-08-03 13:12:50 +0200
commit4f3acf957918843b4c40ff2edfb929bcfaa3730e (patch)
tree18fd457c502af86c06ec5102a6cc42edc18195a0 /docs/topics/forms
parent47cb85b542470e1712b5d71b0d3d0ec8c7b0dbdc (diff)
Fixed #32984 -- Allowed customizing a deletion field widget in formsets.
Diffstat (limited to 'docs/topics/forms')
-rw-r--r--docs/topics/forms/formsets.txt43
1 files changed, 43 insertions, 0 deletions
diff --git a/docs/topics/forms/formsets.txt b/docs/topics/forms/formsets.txt
index 0281b6a4d6..30979edae4 100644
--- a/docs/topics/forms/formsets.txt
+++ b/docs/topics/forms/formsets.txt
@@ -636,6 +636,49 @@ 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.
+:class:`~django.forms.formsets.BaseFormSet` also provides a
+:attr:`~django.forms.formsets.BaseFormSet.deletion_widget` attribute and
+:meth:`~django.forms.formsets.BaseFormSet.get_deletion_widget` method that
+control the widget used with
+:attr:`~django.forms.formsets.BaseFormSet.can_delete`.
+
+``deletion_widget``
+^^^^^^^^^^^^^^^^^^^
+
+.. versionadded:: 4.0
+
+.. attribute:: BaseFormSet.deletion_widget
+
+Default: :class:`~django.forms.CheckboxInput`
+
+Set ``deletion_widget`` to specify the widget class to be used with
+``can_delete``::
+
+ >>> from django.forms import BaseFormSet, formset_factory
+ >>> from myapp.forms import ArticleForm
+ >>> class BaseArticleFormSet(BaseFormSet):
+ ... deletion_widget = HiddenInput
+
+ >>> ArticleFormSet = formset_factory(ArticleForm, formset=BaseArticleFormSet, can_delete=True)
+
+``get_deletion_widget``
+^^^^^^^^^^^^^^^^^^^^^^^
+
+.. versionadded:: 4.0
+
+.. method:: BaseFormSet.get_deletion_widget()
+
+Override ``get_deletion_widget()`` if you need to provide a widget instance for
+use with ``can_delete``::
+
+ >>> from django.forms import BaseFormSet, formset_factory
+ >>> from myapp.forms import ArticleForm
+ >>> class BaseArticleFormSet(BaseFormSet):
+ ... def get_deletion_widget(self):
+ ... return HiddenInput(attrs={'class': 'deletion'})
+
+ >>> ArticleFormSet = formset_factory(ArticleForm, formset=BaseArticleFormSet, can_delete=True)
+
``can_delete_extra``
--------------------