我在django项目工作。我有1个postgresql sql文件,需要在db创建后只运行一次。内置django信号不太适合我的情况。所以我尝试编写自定义django信号,但我不知道如何从这个案例开始。有没有人有一个很好的指导。 ? :)
答案 0 :(得分:1)
Django docs on signals已经有了显着改善,所以如果你还没有,请看一下。这个过程非常简单。
首先创建您的信号(providing_args
允许您指定稍后发送信号时将传递的参数:
import django.dispatch
my_signal = django.dispatch.Signal(providing_args=["first_arg", "second_arg"])
其次,创建一个接收函数:
from django.dispatch import receiver
@receiver(my_signal)
def my_callback(sender, first_arg, second_arg, **kwargs):
# do something
最后,在您的代码中发送您的信号(self
,因为发送方仅适用于您的模型类。否则,只需传递模型类名称):
my_signal.send(sender=self, first_arg='foo', second_arg='bar')