要捕获 post_save
信号,你需要使用 @receiver
装饰器来定义一个信号处理器函数,并将其与 post_save
信号关联起来。下面是一个示例代码:
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.contrib.auth.models import User
@receiver(post_save, sender=User)
def my_callback(sender, instance, created, **kwargs):
if created:
print("A new user has been created!")
else:
print("An existing user has been updated.")
# 在应用程序中的某个地方导入该模块,以便信号处理器能够注册
在上面的示例中,我们定义了一个名为 my_callback
的信号处理器函数,并通过 @receiver
装饰器将其与 post_save
信号关联起来。当 post_save
信号被发送时,my_callback
函数将被调用。
在这个示例中,信号处理器函数接收了几个参数:
sender
:发送信号的模型类。instance
:被保存的模型实例。created
:一个布尔值,指示是否是创建新的对象。kwargs
:其他可选参数。你可以根据实际需要在信号处理器函数中执行任何操作。在上面的示例中,我们只是简单地打印一条消息,但你可以执行其他任务,如发送电子邮件、更新其他模型等等。
确保在你的应用程序中的某个地方导入包含信号处理器函数的模块,这样信号处理器才能够注册并生效。