from django.db.models.query import QuerySet #save original delete method orrigdelete = QuerySet.delete def showdelete(self): #add on to delete method for test in self: if isinstance(test, YourObject): raise Exception('someone tried to delete your object') return else: break #call original delete return orrigdelete(self) #set the queryset delete as our new method QuerySet.delete = showdelete