summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTianyi Wang <wty52133@gmail.com>2013-10-15 11:55:43 +0100
committerTim Graham <timograham@gmail.com>2013-10-15 07:36:37 -0400
commitecfd958c84a2b224ff1b71c42cfe481da98c14e6 (patch)
tree8ec08325c8fce26d2fedcb5f305eebd82b8f5aac
parent07ebd23254acab0677aca8baf76440811e9473e2 (diff)
downloaddjango-ecfd958c84a2b224ff1b71c42cfe481da98c14e6.tar.gz
[1.6.x] Fixed #21006 -- Added example code for overriding methods on an InlineFormSet.
Thanks treysta at gmail.com for the suggestion. Backport of 9bfe66164e from master
-rw-r--r--docs/topics/forms/modelforms.txt30
1 files changed, 26 insertions, 4 deletions
diff --git a/docs/topics/forms/modelforms.txt b/docs/topics/forms/modelforms.txt
index 585a31831b..c88d90921c 100644
--- a/docs/topics/forms/modelforms.txt
+++ b/docs/topics/forms/modelforms.txt
@@ -919,7 +919,7 @@ class's ``clean`` method::
# example custom validation across forms in the formset:
for form in self.forms:
# your custom formset validation
- pass
+ ...
Using a custom queryset
-----------------------
@@ -1046,13 +1046,35 @@ a particular author, you could do this::
:ref:`Manually rendered can_delete and can_order <manually-rendered-can-delete-and-can-order>`.
-Overriding ``clean()`` on an ``InlineFormSet``
-----------------------------------------------
+Overriding methods on an ``InlineFormSet``
+------------------------------------------
-See :ref:`model-formsets-overriding-clean`, but subclass
+When overriding methods on ``InlineFormSet``, you should subclass
:class:`~models.BaseInlineFormSet` rather than
:class:`~models.BaseModelFormSet`.
+For example, If you want to override ``clean()``::
+
+ from django.forms.models import BaseInlineFormSet
+
+ class MyModelFormSet(BaseInlineFormSet):
+ def clean(self):
+ super(MyModelFormSet, self).clean()
+ # example custom validation across forms in the formset:
+ for form in self.forms:
+ # your custom formset validation
+ ...
+
+See also :ref:`model-formsets-overriding-clean`.
+
+Then when you create your inline formset, pass in the optional argument
+``formset``::
+
+ >>> from django.forms.models import inlineformset_factory
+ >>> BookFormSet = inlineformset_factory(Author, Book, formset=MyModelFormSet)
+ >>> author = Author.objects.get(name=u'Mike Royko')
+ >>> formset = BookFormSet(instance=author)
+
More than one foreign key to the same model
-------------------------------------------