diff --git a/netbox/netbox/views/generic/object_views.py b/netbox/netbox/views/generic/object_views.py index 4757a77f5..de6b5cb9a 100644 --- a/netbox/netbox/views/generic/object_views.py +++ b/netbox/netbox/views/generic/object_views.py @@ -2,9 +2,9 @@ import logging from copy import deepcopy from django.contrib import messages -from django.contrib.admin.utils import NestedObjects from django.db import transaction, router from django.db.models import ProtectedError +from django.db.models.deletion import Collector from django.shortcuts import redirect, render from django.urls import reverse from django.utils.html import escape @@ -336,13 +336,16 @@ class ObjectDeleteView(GetReturnURLMixin, BaseObjectView): form = ConfirmationForm(initial=request.GET) using = router.db_for_write(obj._meta.model) - collector = NestedObjects(using=using) + collector = Collector(using=using) collector.collect([obj]) - nested_objs = [] + deletion_objects = [] if collector.instances_with_model(): for model, instance in collector.instances_with_model(): - nested_objs.append(f"{model.__name__} - {instance}") - + # we could ignore the instance == obj so that the list doesnt contain itself... + deletion_objects.append({ + "modelname":f"{model.__name__}", + "object": instance, + }) # If this is an HTMX request, return only the rendered deletion form as modal content if is_htmx(request): @@ -353,7 +356,7 @@ class ObjectDeleteView(GetReturnURLMixin, BaseObjectView): 'object_type': self.queryset.model._meta.verbose_name, 'form': form, 'form_url': form_url, - 'nested_objs': nested_objs, + 'deletion_objects': deletion_objects, **self.get_extra_context(request, obj), }) @@ -361,7 +364,7 @@ class ObjectDeleteView(GetReturnURLMixin, BaseObjectView): 'object': obj, 'form': form, 'return_url': self.get_return_url(request, obj), - 'nested_objs': nested_objs, + 'deletion_objects': deletion_objects, **self.get_extra_context(request, obj), }) diff --git a/netbox/templates/htmx/delete_form.html b/netbox/templates/htmx/delete_form.html index 9aac23aa6..f108f41ea 100644 --- a/netbox/templates/htmx/delete_form.html +++ b/netbox/templates/htmx/delete_form.html @@ -12,11 +12,11 @@ Are you sure you want to delete {{ object_type }} {{ object }}? {% endblocktrans %}

- {% if nested_objs %} + {% if deletion_objects %}

- This will cause deltion of the following related items:
- {% for nested_obj in nested_objs %} - - {{ nested_obj }}
+ This will cause deltion of the following items:
+ {% for deletion_object in deletion_objects %} + - {{ deletion_object.modelname }} - {{ deletion_object.object | linkify }}
{% endfor %}

{% endif %}