django built-in admin action delete - reason for bad performance?
When doing a bulk delete, neither the models delete() methods nor the eventual pre_delete and post_delete signals are invoked, so if your code relies on either of those you are in trouble. Hence the very sensible choice to loop over instances and call their delete() method individually. No need to report it as a bug (nor to submit a patch), it's actually a feature ;)
I have been adding items from a txt to my database in a djago-view - with and without the @transaction.atomic-decorator, i.e. with a loop over db-writes or one db-write -- the performance difference is near infinite!^^
Now my observation: the default delete-action in the admin panel clearly does the (inferior) loop over db-wirtes. Which takes really long for deleting 1000 entries. 
Why is this, is there a reason, am I missing something?!
Or should I fix this and open a pull request ;) (would be my first oss-contribution :))
As mentioned in the first answer, there is a confirmation step between chosing the action and the actual delete. But even after the confirmation it takes several minutes (for a few thousand entries) to delete the items, during which the database is locked, so there is no way back at that point...