diff --git a/django/contrib/admin/static/admin/css/forms.css b/django/contrib/admin/static/admin/css/forms.css index 057c5258f2..33f370eaba 100644 --- a/django/contrib/admin/static/admin/css/forms.css +++ b/django/contrib/admin/static/admin/css/forms.css @@ -432,9 +432,12 @@ body.popup .submit-row { border: none; } +.inline-related.tabular div.wrapper { + overflow-x: auto; +} + .inline-related.tabular fieldset.module table { width: 100%; - overflow-x: scroll; } .last-related fieldset { diff --git a/django/contrib/admin/templates/admin/edit_inline/tabular.html b/django/contrib/admin/templates/admin/edit_inline/tabular.html index 9367ac9b63..494d4677fa 100644 --- a/django/contrib/admin/templates/admin/edit_inline/tabular.html +++ b/django/contrib/admin/templates/admin/edit_inline/tabular.html @@ -15,7 +15,8 @@ {% if inline_admin_formset.is_collapsible %}{% endif %} {{ inline_admin_formset.formset.non_form_errors }} - +
+
{% for field in inline_admin_formset.fields %} @@ -62,7 +63,8 @@ {% endfor %} -
+ + {% if inline_admin_formset.is_collapsible %}{% endif %} diff --git a/tests/admin_inlines/tests.py b/tests/admin_inlines/tests.py index e73f4fda6e..7734c27873 100644 --- a/tests/admin_inlines/tests.py +++ b/tests/admin_inlines/tests.py @@ -2501,6 +2501,16 @@ class SeleniumTests(AdminSeleniumTestCase): tabular_inline.find_elements(By.CSS_SELECTOR, ".collapse"), [], ) + # The table does not overflow the content section. + content = self.selenium.find_element(By.ID, "content-main") + tabular_wrapper = self.selenium.find_element( + By.CSS_SELECTOR, "div.tabular.inline-related div.wrapper" + ) + self.assertGreater( + tabular_wrapper.find_element(By.TAG_NAME, "table").size["width"], + tabular_wrapper.size["width"], + ) + self.assertLessEqual(tabular_wrapper.size["width"], content.size["width"]) @screenshot_cases(["desktop_size", "mobile_size", "rtl", "dark", "high_contrast"]) def test_tabular_inline_delete_layout(self):