From db19619545dd99a1d2502c72974d79eca33acff7 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Sat, 26 Mar 2016 20:11:57 +0100 Subject: Fixed #25532 -- Properly redisplayed JSONField form input values Thanks David Szotten for the report and Tommy Beadle for code inspiration. Thanks Tim Graham for the review. --- django/forms/forms.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'django/forms') diff --git a/django/forms/forms.py b/django/forms/forms.py index 7aceb905a7..0a15ec510f 100644 --- a/django/forms/forms.py +++ b/django/forms/forms.py @@ -365,13 +365,14 @@ class BaseForm(object): def _clean_fields(self): for name, field in self.fields.items(): + if field.disabled: + # Initial values are supposed to be clean + self.cleaned_data[name] = self.initial.get(name, field.initial) + continue # value_from_datadict() gets the data from the data dictionaries. # Each widget type knows how to retrieve its own data, because some # widgets split data over several HTML fields. - if field.disabled: - value = self.initial.get(name, field.initial) - else: - value = field.widget.value_from_datadict(self.data, self.files, self.add_prefix(name)) + value = field.widget.value_from_datadict(self.data, self.files, self.add_prefix(name)) try: if isinstance(field, FileField): initial = self.initial.get(name, field.initial) -- cgit v1.3