How to use Django signals

Answered
Jan 05, 2026 1629 views 1 answers
31

How can I run code automatically when a model is saved or deleted?

W
Platinum 285 rep

1 Answer

15
from django.db.models.signals import post_save, pre_delete
from django.dispatch import receiver
from .models import User, Profile

# Using decorator
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, **kwargs):
    if created:
        Profile.objects.create(user=instance)

@receiver(pre_delete, sender=User)
def cleanup_user(sender, instance, **kwargs):
    # Cleanup before deletion
    pass

# In apps.py, ensure signals are loaded
class MyAppConfig(AppConfig):
    def ready(self):
        import myapp.signals
L
Answered by linux_expert 1 week, 2 days ago
Bronze 311 rep

Your Answer

You need to be logged in to answer questions.

Log In to Answer