|
@@ -74,15 +74,15 @@ from .models import (
|
|
|
)
|
|
|
|
|
|
|
|
|
-def build_tbody_html(obj, href, extra_fields):
|
|
|
+def build_tbody_html(obj, href, field_name, extra_fields):
|
|
|
return (
|
|
|
"<tbody><tr>"
|
|
|
'<td class="action-checkbox">'
|
|
|
'<input type="checkbox" name="_selected_action" value="{}" '
|
|
|
'class="action-select" aria-label="Select this object for an action - {}"></td>'
|
|
|
- '<th class="field-name"><a href="{}">name</a></th>'
|
|
|
+ '<th class="field-name"><a href="{}">{}</a></th>'
|
|
|
"{}</tr></tbody>"
|
|
|
- ).format(obj.pk, str(obj), href, extra_fields)
|
|
|
+ ).format(obj.pk, str(obj), href, field_name, extra_fields)
|
|
|
|
|
|
|
|
|
@override_settings(ROOT_URLCONF="admin_changelist.urls")
|
|
@@ -245,7 +245,7 @@ class ChangeListTests(TestCase):
|
|
|
table_output = template.render(context)
|
|
|
link = reverse("admin:admin_changelist_child_change", args=(new_child.id,))
|
|
|
row_html = build_tbody_html(
|
|
|
- new_child, link, '<td class="field-parent nowrap">-</td>'
|
|
|
+ new_child, link, "name", '<td class="field-parent nowrap">-</td>'
|
|
|
)
|
|
|
self.assertNotEqual(
|
|
|
table_output.find(row_html),
|
|
@@ -253,6 +253,24 @@ class ChangeListTests(TestCase):
|
|
|
"Failed to find expected row element: %s" % table_output,
|
|
|
)
|
|
|
|
|
|
+ def test_result_list_empty_changelist_value_blank_string(self):
|
|
|
+ new_child = Child.objects.create(name="", parent=None)
|
|
|
+ request = self.factory.get("/child/")
|
|
|
+ request.user = self.superuser
|
|
|
+ m = ChildAdmin(Child, 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": Child._meta})
|
|
|
+ table_output = template.render(context)
|
|
|
+ link = reverse("admin:admin_changelist_child_change", args=(new_child.id,))
|
|
|
+ row_html = build_tbody_html(
|
|
|
+ new_child, link, "-", '<td class="field-parent nowrap">-</td>'
|
|
|
+ )
|
|
|
+ self.assertInHTML(row_html, table_output)
|
|
|
+
|
|
|
def test_result_list_set_empty_value_display_on_admin_site(self):
|
|
|
"""
|
|
|
Empty value display can be set on AdminSite.
|
|
@@ -272,7 +290,7 @@ class ChangeListTests(TestCase):
|
|
|
table_output = template.render(context)
|
|
|
link = reverse("admin:admin_changelist_child_change", args=(new_child.id,))
|
|
|
row_html = build_tbody_html(
|
|
|
- new_child, link, '<td class="field-parent nowrap">???</td>'
|
|
|
+ new_child, link, "name", '<td class="field-parent nowrap">???</td>'
|
|
|
)
|
|
|
self.assertNotEqual(
|
|
|
table_output.find(row_html),
|
|
@@ -299,6 +317,7 @@ class ChangeListTests(TestCase):
|
|
|
row_html = build_tbody_html(
|
|
|
new_child,
|
|
|
link,
|
|
|
+ "name",
|
|
|
'<td class="field-age_display">&dagger;</td>'
|
|
|
'<td class="field-age">-empty-</td>',
|
|
|
)
|
|
@@ -327,7 +346,10 @@ class ChangeListTests(TestCase):
|
|
|
table_output = template.render(context)
|
|
|
link = reverse("admin:admin_changelist_child_change", args=(new_child.id,))
|
|
|
row_html = build_tbody_html(
|
|
|
- new_child, link, '<td class="field-parent nowrap">%s</td>' % new_parent
|
|
|
+ new_child,
|
|
|
+ link,
|
|
|
+ "name",
|
|
|
+ '<td class="field-parent nowrap">%s</td>' % new_parent,
|
|
|
)
|
|
|
self.assertNotEqual(
|
|
|
table_output.find(row_html),
|