This explains how Django signal receivers work:

https://docs.djangoproject.com/en/dev/topics/signals/#connecting-receiver-functions