7.8. Signals¶
7.8.1. Available signals¶
7.8.2. Model signals¶
django.db.models.signals.pre_init
django.db.models.signals.post_init
django.db.models.signals.pre_save
django.db.models.signals.post_save
django.db.models.signals.pre_delete
django.db.models.signals.post_delete
7.8.3. M2m relations¶
django.db.models.signals.m2m_changed
django.db.models.signals.class_prepared
7.8.4. Migrations¶
django.db.models.signals.pre_migrate
django.db.models.signals.post_migrate
7.8.5. Request¶
django.core.signals.request_started
django.core.signals.request_finished
django.core.signals.got_request_exception
7.8.6. Test¶
django.test.signals.setting_changed
django.test.signals.template_rendered
7.8.7. Database¶
django.db.backends.signals.connection_created
7.8.8. Examples¶
from django.db.models.signals import pre_save
from django.dispatch import receiver
from myapp.models import MyModel
@receiver(pre_save, sender=MyModel)
def my_handler(sender, **kwargs):
...
from django.apps import AppConfig
from django.db.models.signals import post_migrate
def my_callback(sender, **kwargs):
# Your specific logic here
pass
class MyAppConfig(AppConfig):
...
def ready(self):
post_migrate.connect(my_callback, sender=self)