How to use Django signals
Answered
31
How can I run code automatically when a model is saved or deleted?
W
Asked by
web_developer
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
Bronze
•
311 rep
Your Answer
You need to be logged in to answer questions.
Log In to Answer