{% endif %}
diff --git a/django/contrib/admin/templates/admin/change_list.html b/django/contrib/admin/templates/admin/change_list.html
index b0b4c31619..cf96df9fe2 100644
--- a/django/contrib/admin/templates/admin/change_list.html
+++ b/django/contrib/admin/templates/admin/change_list.html
@@ -39,15 +39,16 @@
{% block coltype %}{% endblock %}
+{% block object-tools %}
+
- {% block object-tools %}
-
- {% endblock %}
{% if cl.formset and cl.formset.errors %}
{% blocktranslate count counter=cl.formset.total_error_count %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktranslate %}
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index 8e2c55804b..2b14238f21 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -127,6 +127,7 @@ from .models import (
Song,
State,
Story,
+ Subscriber,
SuperSecretHideout,
SuperVillain,
Telegram,
@@ -6861,6 +6862,24 @@ class SeleniumTests(AdminSeleniumTestCase):
name_input_value = name_input.get_attribute("value")
self.assertEqual(name_input_value, "Test section 1")
+ @screenshot_cases(["desktop_size", "mobile_size", "rtl", "dark", "high_contrast"])
+ def test_long_object_str_on_change_view(self):
+ from selenium.webdriver.common.by import By
+
+ self.admin_login(
+ username="super", password="secret", login_url=reverse("admin:index")
+ )
+ s = Subscriber.objects.create(name="a " * 40, email="b " * 80)
+ self.selenium.get(
+ self.live_server_url
+ + reverse("admin:admin_views_subscriber_change", args=(s.pk,))
+ )
+ object_tools = self.selenium.find_elements(
+ By.CSS_SELECTOR, "div#content ul.object-tools li"
+ )
+ self.assertGreater(len(object_tools), 0)
+ self.take_screenshot("not-overwrap")
+
@override_settings(ROOT_URLCONF="admin_views.urls")
class ReadonlyTest(AdminFieldExtractionMixin, TestCase):