diff --git a/django/contrib/admin/templates/admin/edit_inline/tabular.html b/django/contrib/admin/templates/admin/edit_inline/tabular.html
index 7acfda7bd1..9367ac9b63 100644
--- a/django/contrib/admin/templates/admin/edit_inline/tabular.html
+++ b/django/contrib/admin/templates/admin/edit_inline/tabular.html
@@ -23,7 +23,7 @@
{% if field.help_text %}
{% endif %}
{% endfor %}
- {% if inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission %}
{% translate "Delete?" %} | {% endif %}
+ {% if inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission %}{% translate "Delete?" %}{% endif %} |
@@ -58,9 +58,7 @@
{% endfor %}
{% endfor %}
{% endfor %}
- {% if inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission %}
- {% if inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }}{% endif %} |
- {% endif %}
+ {% if inline_admin_formset.formset.can_delete and inline_admin_formset.has_delete_permission and inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }}{% endif %} |
{% endfor %}
diff --git a/tests/admin_inlines/tests.py b/tests/admin_inlines/tests.py
index b08ab3a52a..89f43300d7 100644
--- a/tests/admin_inlines/tests.py
+++ b/tests/admin_inlines/tests.py
@@ -19,6 +19,7 @@ from .models import (
Child,
ChildModel1,
ChildModel2,
+ ExtraTerrestrial,
Fashionista,
FootNote,
Holder,
@@ -2493,3 +2494,34 @@ class SeleniumTests(AdminSeleniumTestCase):
tabular_inline.find_elements(By.CSS_SELECTOR, ".collapse"),
[],
)
+
+ @screenshot_cases(["desktop_size", "mobile_size", "rtl", "dark", "high_contrast"])
+ def test_tabular_inline_delete_layout(self):
+ from selenium.webdriver.common.by import By
+
+ user = User.objects.create_user("testing", password="password", is_staff=True)
+ et_permission = Permission.objects.filter(
+ content_type=ContentType.objects.get_for_model(ExtraTerrestrial),
+ )
+ s_permission = Permission.objects.filter(
+ codename__in=["view_sighting", "add_sighting"],
+ content_type=ContentType.objects.get_for_model(Sighting),
+ )
+ user.user_permissions.add(*et_permission, *s_permission)
+ self.admin_login(username="testing", password="password")
+ cf = ExtraTerrestrial.objects.create(name="test")
+ url = reverse("admin:admin_inlines_extraterrestrial_change", args=(cf.pk,))
+ self.selenium.get(self.live_server_url + url)
+ headers = self.selenium.find_elements(
+ By.CSS_SELECTOR, "fieldset.module thead tr th"
+ )
+ self.assertHTMLEqual(headers[-1].get_attribute("outerHTML"), " | ")
+ delete = self.selenium.find_element(
+ By.CSS_SELECTOR,
+ "fieldset.module tbody tr.dynamic-sighting_set:not(.original) td.delete",
+ )
+ self.assertIn(
+ '',
+ delete.get_attribute("innerHTML"),
+ )
+ self.take_screenshot("loaded")