summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorSyed Waheed <105697767+Waheedsys@users.noreply.github.com>2024-01-23 14:17:31 +0530
committerGitHub <noreply@github.com>2024-01-23 09:47:31 +0100
commitd9b91e38361696014bdc98434d6d018eae809519 (patch)
tree1d28c506d4a9edf99352a774f46b1440b260a752 /django
parentbbfbf0ab686030f8da5ea22a65c41b9574681262 (diff)
Fixed #32923 -- Refactored out Field._clean_bound_field().
Diffstat (limited to 'django')
-rw-r--r--django/forms/fields.py8
-rw-r--r--django/forms/forms.py9
2 files changed, 10 insertions, 7 deletions
diff --git a/django/forms/fields.py b/django/forms/fields.py
index 62d68985c0..4ec7b7aee7 100644
--- a/django/forms/fields.py
+++ b/django/forms/fields.py
@@ -261,6 +261,10 @@ class Field:
result.validators = self.validators[:]
return result
+ def _clean_bound_field(self, bf):
+ value = bf.initial if self.disabled else bf.data
+ return self.clean(value)
+
class CharField(Field):
def __init__(
@@ -694,6 +698,10 @@ class FileField(Field):
def has_changed(self, initial, data):
return not self.disabled and data is not None
+ def _clean_bound_field(self, bf):
+ value = bf.initial if self.disabled else bf.data
+ return self.clean(value, bf.initial)
+
class ImageField(FileField):
default_validators = [validators.validate_image_file_extension]
diff --git a/django/forms/forms.py b/django/forms/forms.py
index 5de14d598a..452f554e1e 100644
--- a/django/forms/forms.py
+++ b/django/forms/forms.py
@@ -6,7 +6,7 @@ import copy
import datetime
from django.core.exceptions import NON_FIELD_ERRORS, ValidationError
-from django.forms.fields import Field, FileField
+from django.forms.fields import Field
from django.forms.utils import ErrorDict, ErrorList, RenderableFormMixin
from django.forms.widgets import Media, MediaDefiningClass
from django.utils.datastructures import MultiValueDict
@@ -329,13 +329,8 @@ class BaseForm(RenderableFormMixin):
def _clean_fields(self):
for name, bf in self._bound_items():
field = bf.field
- value = bf.initial if field.disabled else bf.data
try:
- if isinstance(field, FileField):
- value = field.clean(value, bf.initial)
- else:
- value = field.clean(value)
- self.cleaned_data[name] = value
+ self.cleaned_data[name] = field._clean_bound_field(bf)
if hasattr(self, "clean_%s" % name):
value = getattr(self, "clean_%s" % name)()
self.cleaned_data[name] = value