summaryrefslogtreecommitdiff
path: root/tests/modeladmin/test_checks.py
diff options
context:
space:
mode:
authorRodrigo Vieira <rodrigo.vieira@gmail.com>2026-04-22 18:53:27 -0300
committerJacob Walls <jacobtylerwalls@gmail.com>2026-04-22 22:22:55 -0400
commitfa2a3de6ede10b005fc2c1d23f4cffb53eaec425 (patch)
tree2fbb49592272a9b5b54ae9457ba0e2072dabe74f /tests/modeladmin/test_checks.py
parenta586f03f36f511064f171c0e30f4ca2ebfd60085 (diff)
Fixed #10919 -- Added delete_confirmation_max_display to ModelAdmin.
The new ModelAdmin.delete_confirmation_max_display attribute allows limiting the number of related objects shown on the delete confirmation page. When the limit is reached, a "…and N more objects." message is shown. The feature relies on a new truncated_unordered_list template filter added to django.contrib.admin.templatetags.admin_filters. Thanks Jacob Tyler Walls for the review and guidance, Tobias McNulty for the report, and terminator14 for the solution suggested.
Diffstat (limited to 'tests/modeladmin/test_checks.py')
-rw-r--r--tests/modeladmin/test_checks.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/modeladmin/test_checks.py b/tests/modeladmin/test_checks.py
index c493148eb9..496e46e8b0 100644
--- a/tests/modeladmin/test_checks.py
+++ b/tests/modeladmin/test_checks.py
@@ -1020,6 +1020,50 @@ class ListMaxShowAllCheckTests(CheckTestCase):
self.assertIsValid(TestModelAdmin, ValidationTestModel)
+class DeleteConfirmationMaxObjectsCheckTests(CheckTestCase):
+ def test_not_integer(self):
+ class TestModelAdmin(ModelAdmin):
+ delete_confirmation_max_display = "hello"
+
+ self.assertIsInvalid(
+ TestModelAdmin,
+ ValidationTestModel,
+ (
+ "The value of "
+ "'delete_confirmation_max_display'"
+ " must be a non-negative integer or None."
+ ),
+ "admin.E131",
+ )
+
+ def test_negative_integer(self):
+ class TestModelAdmin(ModelAdmin):
+ delete_confirmation_max_display = -1
+
+ self.assertIsInvalid(
+ TestModelAdmin,
+ ValidationTestModel,
+ (
+ "The value of "
+ "'delete_confirmation_max_display'"
+ " must be a non-negative integer or None."
+ ),
+ "admin.E131",
+ )
+
+ def test_valid_case(self):
+ class TestModelAdmin(ModelAdmin):
+ delete_confirmation_max_display = 100
+
+ self.assertIsValid(TestModelAdmin, ValidationTestModel)
+
+ def test_valid_none(self):
+ class TestModelAdmin(ModelAdmin):
+ delete_confirmation_max_display = None
+
+ self.assertIsValid(TestModelAdmin, ValidationTestModel)
+
+
class SearchFieldsCheckTests(CheckTestCase):
def test_not_iterable(self):
class TestModelAdmin(ModelAdmin):