summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLoic Bistuer <loic.bistuer@sixmedia.com>2013-11-22 19:55:02 +0700
committerTim Graham <timograham@gmail.com>2013-11-22 19:50:46 -0500
commita0ab432f2fea494f2a1894fa3c778b914b7ccd87 (patch)
tree8dcf757df0ddc84bd13470810abc76c1c01d3fad
parent4212ae6fef47ec85f972f715c7f75a69071ed04b (diff)
[1.6.x] Improved docs for ModelFormSet.clean().
Backport of 033b26173b from master
-rw-r--r--docs/topics/forms/modelforms.txt18
1 files changed, 18 insertions, 0 deletions
diff --git a/docs/topics/forms/modelforms.txt b/docs/topics/forms/modelforms.txt
index 8be945d690..d7741ce2d7 100644
--- a/docs/topics/forms/modelforms.txt
+++ b/docs/topics/forms/modelforms.txt
@@ -921,6 +921,24 @@ class's ``clean`` method::
# your custom formset validation
...
+Also note that by the time you reach this step, individual model instances
+have already been created for each ``Form``. Modifying a value in
+``form.cleaned_data`` is not sufficient to affect the saved value. If you wish
+to modify a value in ``ModelFormSet.clean()`` you must modify
+``form.instance``::
+
+ from django.forms.models import BaseModelFormSet
+
+ class MyModelFormSet(BaseModelFormSet):
+ def clean(self):
+ super(MyModelFormSet, self).clean()
+
+ for form in self.forms:
+ name = form.cleaned_data['name'].upper()
+ form.cleaned_data['name'] = name
+ # update the instance value.
+ form.instance.name = name
+
Using a custom queryset
-----------------------