From 79ab0993d0f2253e10ea638bcefc98ec2d890a47 Mon Sep 17 00:00:00 2001 From: Johannes Maron Date: Sat, 27 Dec 2025 12:28:26 +0100 Subject: [PATCH] Fixed #36829 -- Reverted value of ClearableFileInput.use_fieldset to True. There was unresolved discussion regarding whether to set ClearableFileInput.use_fieldset to True or False when use_fieldset was introduced in Django 4.1, since the clear checkbox appears only sometimes. Although using
is likely desirable, since the primary motivation in #35892 was just to improve markup in the admin, and a deprecation path was not provided for general form usage, future work is deferred to #36828. Regression in 4187da258fe212d494cb578a0bc2b52c4979ab95. Thanks Tim Graham, Antoliny, and David Smith for triage. --- django/contrib/admin/widgets.py | 1 + django/forms/widgets.py | 2 +- docs/releases/6.0.1.txt | 4 ++++ .../widget_tests/test_clearablefileinput.py | 15 +++++++-------- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/django/contrib/admin/widgets.py b/django/contrib/admin/widgets.py index 81b57f33aa..f5c3939012 100644 --- a/django/contrib/admin/widgets.py +++ b/django/contrib/admin/widgets.py @@ -122,6 +122,7 @@ class AdminRadioSelect(forms.RadioSelect): class AdminFileWidget(forms.ClearableFileInput): template_name = "admin/widgets/clearable_file_input.html" + use_fieldset = True def url_params_from_lookup_dict(lookups): diff --git a/django/forms/widgets.py b/django/forms/widgets.py index b77e57abce..1bcfeba288 100644 --- a/django/forms/widgets.py +++ b/django/forms/widgets.py @@ -530,7 +530,7 @@ class ClearableFileInput(FileInput): input_text = _("Change") template_name = "django/forms/widgets/clearable_file_input.html" checked = False - use_fieldset = True + use_fieldset = False def clear_checkbox_name(self, name): """ diff --git a/docs/releases/6.0.1.txt b/docs/releases/6.0.1.txt index 753d2c87ad..bb1dfab2c9 100644 --- a/docs/releases/6.0.1.txt +++ b/docs/releases/6.0.1.txt @@ -35,3 +35,7 @@ Bugfixes * Fixed a regression in Django 6.0 where :func:`~django.urls.path` routes defined using :func:`~django.utils.translation.gettext_lazy` failed to resolve correctly (:ticket:`36796`). + +* Fixed a regression in Django 6.0 where the :attr:`.Widget.use_fieldset` + attribute of :class:`~django.forms.ClearableFileInput` was flipped + from ``False`` to ``True`` (:ticket:`36829`). diff --git a/tests/forms_tests/widget_tests/test_clearablefileinput.py b/tests/forms_tests/widget_tests/test_clearablefileinput.py index 8f2d951966..ae54cc4b5d 100644 --- a/tests/forms_tests/widget_tests/test_clearablefileinput.py +++ b/tests/forms_tests/widget_tests/test_clearablefileinput.py @@ -246,19 +246,18 @@ class ClearableFileInputTest(WidgetTest): ) form = TestForm() - self.assertIs(self.widget.use_fieldset, True) + self.assertIs(self.widget.use_fieldset, False) self.assertHTMLEqual( - "
Field:" - '
' - "
With file:Currently: " + '
' + '
' + '
Currently: ' 'something
Change:
' - "
Clearable file:" + 'name="with_file" id="id_with_file">
' + '
' 'Currently: something' '
Change:' - '' - "
", + '', form.render(), )