When you try to delete an object, the Django admin gives you a list of all the related objects that will be cascade-deleted as a result. What if you want to get a list of these objects programmatically? You could do it this way:
from django.contrib.admin.util import NestedObjects from django.db import DEFAULT_DB_ALIAS obj = ... # the object you are going to delete collector = NestedObjects(using=DEFAULT_DB_ALIAS) collector.collect([obj]) print collector.nested()
This gives you a nested list of the objects that will get deleted if you delete
obj. Note that
NestedObjects is an undocumented API, so there is no
guarantee that it will continue working from version to version. I tested only
with Django 1.4.1.