From cbfb8ed53b31ec9701f5fb8e519a8644fd4c8095 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Fri, 8 Mar 2013 18:16:38 +0100 Subject: Fixed a regression in forms changed_data Thanks Loic Bistuer for spotting the regression and the initial patch. Refs #16612. --- django/forms/forms.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'django/forms') diff --git a/django/forms/forms.py b/django/forms/forms.py index 38601432bc..5bc9b2d500 100644 --- a/django/forms/forms.py +++ b/django/forms/forms.py @@ -345,8 +345,13 @@ class BaseForm(object): else: initial_prefixed_name = self.add_initial_prefix(name) hidden_widget = field.hidden_widget() - initial_value = field.to_python(hidden_widget.value_from_datadict( - self.data, self.files, initial_prefixed_name)) + try: + initial_value = field.to_python(hidden_widget.value_from_datadict( + self.data, self.files, initial_prefixed_name)) + except ValidationError: + # Always assume data has changed if validation fails. + self._changed_data.append(name) + continue if hasattr(field.widget, '_has_changed'): warnings.warn("The _has_changed method on widgets is deprecated," " define it at field level instead.", -- cgit v1.3