Django自定义信号

时间:2014-02-07 18:13:12

标签: python django arguments signals

因此,在创建信号时,我们会生成一个signals.py文件,如下所示:

from django.dispatch import Signal

some_signal = Signal(providing_args=["arg_1","arg_2",...,"arg_n"])
#...

现在我的问题是,如果你要提供的论点并不总是一样的话怎么办? 如何以这种灵活性创建信号?

1 个答案:

答案 0 :(得分:3)

如果你read the documentation:

  

所有信号都是django.dispatch.Signal实例。 offering_args是信号将提供给侦听器的参数名称列表。 这纯粹是文档化的,因为没有任何东西可以检查信号是否真正为其听众提供了这些参数。

如果您查看send方法的签名:

  

Signal.send(发件人,** kwargs)

您会注意到它只需要一个参数和您想要的多个关键字参数,因此您可以向信号监听器发送任意数量的内容