Django信号是一种用于在应用程序中发送和接收通知的机制。它们允许您将代码解耦并使其更加模块化。当某个事件发生时,Django会发送一个信号,然后您的代码可以监听该信号并在事件发生时执行相应的操作。
以下是一些常用的Django信号及其示例代码:
- post_save
当模型实例被保存后发送该信号。可以用来执行一些后处理操作。
from django.db.models.signals import post_save
from django.dispatch import receiver
from myapp.models import MyModel
@receiver(post_save, sender=MyModel)
def do_something(sender, **kwargs):
# do something after MyModel instance is saved
- pre_save信号
当模型实例被保存之前发送该信号。可以用来在保存之前修改实例属性。
from django.db.models.signals import pre_save
from django.dispatch import receiver
from myapp.models import MyModel
@receiver(pre_save, sender=MyModel)
def do_something(sender, instance, **kwargs):
# modify instance attributes before MyModel instance is saved
- post_delete信号
当模型实