diff options
| author | Loic Bistuer <loic.bistuer@sixmedia.com> | 2013-11-22 19:55:02 +0700 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2013-11-22 19:50:46 -0500 |
| commit | a0ab432f2fea494f2a1894fa3c778b914b7ccd87 (patch) | |
| tree | 8dcf757df0ddc84bd13470810abc76c1c01d3fad /docs/topics/forms | |
| parent | 4212ae6fef47ec85f972f715c7f75a69071ed04b (diff) | |
[1.6.x] Improved docs for ModelFormSet.clean().
Backport of 033b26173b from master
Diffstat (limited to 'docs/topics/forms')
| -rw-r--r-- | docs/topics/forms/modelforms.txt | 18 |
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 ----------------------- |
