diff options
| -rw-r--r-- | django/contrib/admin/templates/admin/includes/fieldset.html | 10 | ||||
| -rw-r--r-- | docs/releases/5.1.3.txt | 3 | ||||
| -rw-r--r-- | tests/admin_inlines/tests.py | 4 | ||||
| -rw-r--r-- | tests/admin_views/admin.py | 1 | ||||
| -rw-r--r-- | tests/admin_views/tests.py | 13 |
5 files changed, 23 insertions, 8 deletions
diff --git a/django/contrib/admin/templates/admin/includes/fieldset.html b/django/contrib/admin/templates/admin/includes/fieldset.html index a9d3f92702..c94d46fd64 100644 --- a/django/contrib/admin/templates/admin/includes/fieldset.html +++ b/django/contrib/admin/templates/admin/includes/fieldset.html @@ -1,8 +1,7 @@ -{% with name=fieldset.name|default:""|slugify %} -<fieldset class="module aligned {{ fieldset.classes }}"{% if name %} aria-labelledby="{{ prefix }}-{{ id_prefix}}-{{ name }}-{{ id_suffix }}-heading"{% endif %}> - {% if name %} +<fieldset class="module aligned {{ fieldset.classes }}"{% if fieldset.name %} aria-labelledby="{{ prefix }}-{{ id_prefix}}-{{ id_suffix }}-heading"{% endif %}> + {% if fieldset.name %} {% if fieldset.is_collapsible %}<details><summary>{% endif %} - <h{{ heading_level|default:2 }} id="{{ prefix }}-{{ id_prefix}}-{{ name }}-{{ id_suffix }}-heading" class="fieldset-heading">{{ fieldset.name }}</h{{ heading_level|default:2 }}> + <h{{ heading_level|default:2 }} id="{{ prefix }}-{{ id_prefix}}-{{ id_suffix }}-heading" class="fieldset-heading">{{ fieldset.name }}</h{{ heading_level|default:2 }}> {% if fieldset.is_collapsible %}</summary>{% endif %} {% endif %} {% if fieldset.description %} @@ -36,6 +35,5 @@ {% if not line.fields|length == 1 %}</div>{% endif %} </div> {% endfor %} - {% if name and fieldset.is_collapsible %}</details>{% endif %} + {% if fieldset.name and fieldset.is_collapsible %}</details>{% endif %} </fieldset> -{% endwith %} diff --git a/docs/releases/5.1.3.txt b/docs/releases/5.1.3.txt index 0dd5b42cb8..2ef34bfc8a 100644 --- a/docs/releases/5.1.3.txt +++ b/docs/releases/5.1.3.txt @@ -17,3 +17,6 @@ Bugfixes * Fixed a regression in Django 5.1 that prevented the use of DB-IP databases with :class:`~django.contrib.gis.geoip2.GeoIP2` (:ticket:`35841`). + +* Fixed a regression in Django 5.1 where non-ASCII fieldset names were not + displayed when rendering admin fieldsets (:ticket:`35876`). diff --git a/tests/admin_inlines/tests.py b/tests/admin_inlines/tests.py index 2c148a49f0..4959afb02d 100644 --- a/tests/admin_inlines/tests.py +++ b/tests/admin_inlines/tests.py @@ -1785,7 +1785,7 @@ class TestInlineWithFieldsets(TestDataMixin, TestCase): # The second and third have the same "Advanced options" name, but the # second one has the "collapse" class. for x, classes in ((1, ""), (2, "collapse")): - heading_id = f"fieldset-0-advanced-options-{x}-heading" + heading_id = f"fieldset-0-{x}-heading" with self.subTest(heading_id=heading_id): self.assertContains( response, @@ -1830,7 +1830,7 @@ class TestInlineWithFieldsets(TestDataMixin, TestCase): # Every fieldset defined for an inline's form. for z, fieldset in enumerate(inline_admin_form): if fieldset.name: - heading_id = f"{prefix}-{y}-details-{z}-heading" + heading_id = f"{prefix}-{y}-{z}-heading" self.assertContains( response, f'<fieldset class="module aligned {fieldset.classes}" ' diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py index 0ea64d594a..5e14069bae 100644 --- a/tests/admin_views/admin.py +++ b/tests/admin_views/admin.py @@ -237,6 +237,7 @@ class ArticleAdmin(ArticleAdminWithExtraUrl): "Some other fields", {"classes": ("wide",), "fields": ("date", "section", "sub_section")}, ), + ("이름", {"fields": ("another_section",)}), ) # These orderings aren't particularly useful but show that expressions can diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py index 5a3e28f0e4..29ef894bc2 100644 --- a/tests/admin_views/tests.py +++ b/tests/admin_views/tests.py @@ -2508,6 +2508,19 @@ class AdminViewPermissionsTest(TestCase): self.assertContains( response, '<input type="submit" value="Save and view" name="_continue">' ) + self.assertContains( + response, + '<h2 id="fieldset-0-0-heading" class="fieldset-heading">Some fields</h2>', + ) + self.assertContains( + response, + '<h2 id="fieldset-0-1-heading" class="fieldset-heading">' + "Some other fields</h2>", + ) + self.assertContains( + response, + '<h2 id="fieldset-0-2-heading" class="fieldset-heading">이름</h2>', + ) post = self.client.post( reverse("admin:admin_views_article_add"), add_dict, follow=False ) |
