delete signal hooks with delete_instance in recurse mode
That's correct, using the `recurse` functionality issues efficient bulk deletes for any dependent objects. As such, the `delete_instance()` methods of the deps are not called.

It is done this way for efficiency in terms of the database.

(Better yet is to just specify the `on_delete='CASCADE'` option when declaring foreign-keys, and let the database handle everything).

But as to your problem, you'll need to do it manually if you want to do some special processing for each deleted dependent object. Yes I have the proper on cascade things, as ultimately the database is correctly wiped. It's just that I need to do some extra work outside of the database that I hoped to simplify with signals. But I understand the performance reasons, thanks for your work. 
Hi,

I have a couple of signal hooks that act on pre_delete. As mentioned in the docs these signals only work with delete_instance.  I'm however under the impression that this does not work in combination with the recurse=True field of delete_instance. (i.e. the signals do not trigger for dependencies).

take for example these signals:

```python
@pre_delete(sender=Room)
def on_room_delete(model_class, instance):
    logger.warning("DELETE ROOM")

@pre_delete(sender=Location)
def on_location_delete(model_class, instance):
    logger.warning("DELETE LOCATION")
```

Where a `Room` consists of multiple `Location`s.  When calling `some_room.delete_instance(True)` both the room and related locations are removed from the database as expected, however only the DELETE ROOM signal is triggered.

Any suggestions what I can do to work around this ?