Fixed #28278 -- Fixed invalid HTML for a required AdminFileWidget.

This commit is contained in:
kakulukia 2017-06-05 22:17:10 +02:00 committed by Tim Graham
parent 37c9b81ebc
commit 525dc283a6
3 changed files with 15 additions and 1 deletions

View File

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

View File

@ -21,3 +21,5 @@ Bugfixes
* Fixed admin's ``FieldListFilter.get_queryset()`` crash on invalid input * Fixed admin's ``FieldListFilter.get_queryset()`` crash on invalid input
(:ticket:`28202`). (:ticket:`28202`).
* Fixed invalid HTML for a required ``AdminFileWidget`` (:ticket:`28278`).

View File

@ -431,6 +431,18 @@ class AdminFileWidgetTests(TestDataMixin, TestCase):
'<input type="file" name="test" />', '<input type="file" name="test" />',
) )
def test_render_required(self):
widget = widgets.AdminFileWidget()
widget.is_required = True
self.assertHTMLEqual(
widget.render('test', self.album.cover_art),
'<p class="file-upload">Currently: <a href="%(STORAGE_URL)salbums/'
r'hybrid_theory.jpg">albums\hybrid_theory.jpg</a><br />'
'Change: <input type="file" name="test" /></p>' % {
'STORAGE_URL': default_storage.url(''),
},
)
def test_readonly_fields(self): def test_readonly_fields(self):
""" """
File widgets should render as a link when they're marked "read only." File widgets should render as a link when they're marked "read only."