> 文章列表 > 18.Django信号signals

18.Django信号signals

18.Django信号signals

          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信号

         当模型实