1
0
mirror of https://github.com/django/django.git synced 2025-10-31 09:41:08 +00:00

Fixed #35606, Refs #34045 -- Fixed rendering of ModelAdmin.action_checkbox for models with a __html__ method.

Thank you Claude Paroz for the report.

Regression in 85366fbca7.
This commit is contained in:
Hisham Mahmood
2024-07-17 18:50:45 +05:00
committed by Sarah Boyce
parent 0e49a8c3bd
commit 182f262b15
5 changed files with 41 additions and 1 deletions

View File

@@ -23,6 +23,12 @@ class GrandChild(models.Model):
parent = models.ForeignKey(Child, models.SET_NULL, editable=False, null=True)
name = models.CharField(max_length=30, blank=True)
def __str__(self):
return self.name
def __html__(self):
return f'<h2 class="main">{self.name}</h2>'
class Genre(models.Model):
name = models.CharField(max_length=20)

View File

@@ -364,6 +364,33 @@ class ChangeListTests(TestCase):
table_output,
)
def test_action_checkbox_for_model_with_dunder_html(self):
grandchild = GrandChild.objects.create(name="name")
request = self._mocked_authenticated_request("/grandchild/", self.superuser)
m = GrandChildAdmin(GrandChild, custom_site)
cl = m.get_changelist_instance(request)
cl.formset = None
template = Template(
"{% load admin_list %}{% spaceless %}{% result_list cl %}{% endspaceless %}"
)
context = Context({"cl": cl, "opts": GrandChild._meta})
table_output = template.render(context)
link = reverse(
"admin:admin_changelist_grandchild_change", args=(grandchild.id,)
)
row_html = build_tbody_html(
grandchild,
link,
"name",
'<td class="field-parent__name">-</td>'
'<td class="field-parent__parent__name">-</td>',
)
self.assertNotEqual(
table_output.find(row_html),
-1,
"Failed to find expected row element: %s" % table_output,
)
def test_result_list_editable_html(self):
"""
Regression tests for #11791: Inclusion tag result_list generates a