1
0
mirror of https://github.com/django/django.git synced 2025-03-12 18:30:48 +00:00

Refs #34488 -- Made ClearableFileInput preserve "Clear" checked attribute when form is invalid.

This commit is contained in:
Johannes Maron 2024-03-14 13:43:05 +01:00 committed by Mariusz Felisiak
parent e69019555d
commit 3d7235c67b
3 changed files with 17 additions and 2 deletions

View File

@ -1,5 +1,5 @@
{% if widget.is_initial %}{{ widget.initial_text }}: <a href="{{ widget.value.url }}">{{ widget.value }}</a>{% if not widget.required %}
<input type="checkbox" name="{{ widget.checkbox_name }}" id="{{ widget.checkbox_id }}"{% if widget.attrs.disabled %} disabled{% endif %}>
<input type="checkbox" name="{{ widget.checkbox_name }}" id="{{ widget.checkbox_id }}"{% if widget.attrs.disabled %} disabled{% endif %}{% if widget.attrs.checked %} checked{% endif %}>
<label for="{{ widget.checkbox_id }}">{{ widget.clear_checkbox_label }}</label>{% endif %}<br>
{{ widget.input_text }}:{% endif %}
<input type="{{ widget.type }}" name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %}>

View File

@ -1,5 +1,5 @@
{% if widget.is_initial %}{{ widget.initial_text }}: <a href="{{ widget.value.url }}">{{ widget.value }}</a>{% if not widget.required %}
<input type="checkbox" name="{{ widget.checkbox_name }}" id="{{ widget.checkbox_id }}"{% if widget.attrs.disabled %} disabled{% endif %}>
<input type="checkbox" name="{{ widget.checkbox_name }}" id="{{ widget.checkbox_id }}"{% if widget.attrs.disabled %} disabled{% endif %}{% if widget.attrs.checked %} checked{% endif %}>
<label for="{{ widget.checkbox_id }}">{{ widget.clear_checkbox_label }}</label>{% endif %}<br>
{{ widget.input_text }}:{% endif %}
<input type="{{ widget.type }}" name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %}>

View File

@ -111,6 +111,21 @@ class ClearableFileInputTest(WidgetTest):
),
)
def test_render_checked(self):
self.widget.checked = True
self.check_html(
self.widget,
"myfile",
FakeFieldFile(),
html=(
'Currently: <a href="something">something</a>'
'<input type="checkbox" name="myfile-clear" id="myfile-clear_id" '
"checked>"
'<label for="myfile-clear_id">Clear</label><br>Change: '
'<input type="file" name="myfile" checked>'
),
)
def test_render_no_disabled(self):
class TestForm(Form):
clearable_file = FileField(