From fa2a3de6ede10b005fc2c1d23f4cffb53eaec425 Mon Sep 17 00:00:00 2001 From: Rodrigo Vieira Date: Wed, 22 Apr 2026 18:53:27 -0300 Subject: Fixed #10919 -- Added delete_confirmation_max_display to ModelAdmin. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- docs/ref/checks.txt | 2 ++ docs/ref/contrib/admin/index.txt | 16 ++++++++++++++++ docs/releases/6.1.txt | 5 +++++ 3 files changed, 23 insertions(+) (limited to 'docs') diff --git a/docs/ref/checks.txt b/docs/ref/checks.txt index fb9187c2ac..5b4e31420b 100644 --- a/docs/ref/checks.txt +++ b/docs/ref/checks.txt @@ -816,6 +816,8 @@ with the admin site: method for the ```` action. * **admin.E130**: ``__name__`` attributes of actions defined in ```` must be unique. Name ```` is not unique. +* **admin.E131**: The value of ``delete_confirmation_max_display`` must be a + non-negative integer or ``None``. ``InlineModelAdmin`` ~~~~~~~~~~~~~~~~~~~~ diff --git a/docs/ref/contrib/admin/index.txt b/docs/ref/contrib/admin/index.txt index b3c7c2c426..4b0e4a985d 100644 --- a/docs/ref/contrib/admin/index.txt +++ b/docs/ref/contrib/admin/index.txt @@ -1386,6 +1386,21 @@ default templates used by the :class:`ModelAdmin` views: for displaying a confirmation page when deleting one or more objects. See the :doc:`actions documentation`. +.. attribute:: ModelAdmin.delete_confirmation_max_display + + .. versionadded:: 6.1 + + Set ``delete_confirmation_max_display`` to control how many objects are + displayed on the delete confirmation pages before truncating the remainder + with an ellipsis. + + The limit applies to the total number of displayed objects across the + relationship hierarchy. This is purely a display setting and does not + affect the total number of objects retrieved from the database. + + This applies to both :meth:`delete_view` and the ``delete_selected`` + action. By default, this is ``None`` (no truncation). + .. attribute:: ModelAdmin.object_history_template Path to a custom template, used by :meth:`history_view`. @@ -2283,6 +2298,7 @@ adds some of its own (the shared features are actually defined in the - :attr:`~ModelAdmin.fieldsets` - :attr:`~ModelAdmin.fields` - :attr:`~ModelAdmin.formfield_overrides` +- :attr:`~ModelAdmin.delete_confirmation_max_display` - :attr:`~ModelAdmin.exclude` - :attr:`~ModelAdmin.filter_horizontal` - :attr:`~ModelAdmin.filter_vertical` diff --git a/docs/releases/6.1.txt b/docs/releases/6.1.txt index a4e10d2102..48f8939041 100644 --- a/docs/releases/6.1.txt +++ b/docs/releases/6.1.txt @@ -99,6 +99,11 @@ Minor features preserve :ref:`named groups ` (e.g. ``choices=[("Group", [("1", "Item")]), ...]``). +* The :attr:`~django.contrib.admin.ModelAdmin.delete_confirmation_max_display` + option allows customizing how many objects are displayed on admin delete + confirmation pages before the remainder is truncated. The default is + ``None`` (no truncation). + * In order to improve accessibility of the admin change forms: * Form fields are now shown below their respective labels instead of next to -- cgit v1.3