From: Jeremy Kerr Date: Thu, 2 Sep 2010 10:47:38 +0000 (+0800) Subject: forms.MultiplePatchForm: remove no-change fields on clean() X-Git-Url: http://git.ozlabs.org/?p=patchwork;a=commitdiff_plain;h=73960c4331e70da50b65ac753558578ada03d9ce forms.MultiplePatchForm: remove no-change fields on clean() We need to remove no-change fields, as newer versions of django are checking for proper types on validation. Fixes MultipleUpdateTest. Signed-off-by: Jeremy Kerr --- diff --git a/apps/patchwork/forms.py b/apps/patchwork/forms.py index f78a105..2c137e3 100644 --- a/apps/patchwork/forms.py +++ b/apps/patchwork/forms.py @@ -186,6 +186,21 @@ class MultiplePatchForm(PatchForm): self.fields['delegate'] = OptionalDelegateField(project = project, required = False) + def _clean_fields(self): + super(MultiplePatchForm, self)._clean_fields() + # remove optional fields + opts = self.instance._meta + for f in opts.fields: + if not f.name in self.cleaned_data: + continue + + field = self.fields.get(f.name, None) + if field is None: + continue + + if field.is_no_change(self.cleaned_data[f.name]): + del self.cleaned_data[f.name] + def save(self, instance, commit = True): opts = instance.__class__._meta if self.errors: